Android将一个imageview设置成圆形
时间: 2023-05-29 19:01:26 浏览: 1363
android自定义控件ImageView实现圆形图片
5星 · 资源好评率100%
要将一个ImageView设置为圆形,可以使用以下步骤:
1. 在xml文件中添加一个ImageView。
2. 给ImageView设置一个id,以便在代码中引用。
3. 创建一个圆形drawable资源,可以使用xml或者bitmap方式创建。
4. 在代码中获取ImageView的引用。
5. 将创建的圆形drawable资源设置为ImageView的背景。
下面是一个完整的实现例子:
在xml中设置ImageView:
```xml
<ImageView
android:id="@+id/image_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/my_image" />
```
创建一个圆形drawable资源,可以使用以下方式:
1. 使用xml方式创建drawable资源。
将以下代码保存为一个xml文件,如round_drawable.xml:
```xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false">
<solid android:color="#ff0000" />
</shape>
```
2. 使用bitmap方式创建drawable资源。
```java
private Drawable createRoundDrawable(Bitmap bitmap) {
final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(output);
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
canvas.drawOval(rectF, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return new BitmapDrawable(getResources(), output);
}
```
在代码中获取ImageView的引用并设置圆形drawable资源为背景:
```java
ImageView imageView = findViewById(R.id.image_view);
Drawable drawable = getResources().getDrawable(R.drawable.round_drawable);
imageView.setBackground(drawable);
```
注意,使用bitmap方式创建drawable资源可能需要先将原始图片进行裁剪或调整大小,确保其可以完全覆盖ImageView。
这样就可以将一个ImageView设置成圆形啦!
阅读全文