android studio圆形头像怎么实现
时间: 2023-10-14 12:23:59 浏览: 173
可以使用ImageView控件来显示圆形头像,具体步骤如下:
1. 在布局文件中添加ImageView控件:
```xml
<ImageView
android:id="@+id/avatar_image_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/circle_background"
android:src="@drawable/avatar" />
```
其中,drawable/circle_background是一个圆形的背景,可以在res/drawable目录下创建一个circle_background.xml文件,内容如下:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ffffff" />
</shape>
```
2. 在代码中设置图片为圆形:
```java
ImageView avatarImageView = findViewById(R.id.avatar_image_view);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.avatar);
avatarImageView.setImageBitmap(getCircleBitmap(bitmap));
```
其中,getCircleBitmap()方法将图片处理成圆形:
```java
private Bitmap getCircleBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
```
这个方法的作用是创建一个新的Bitmap,然后在其中绘制一个圆形,将原始图片绘制在圆形内部,最终返回处理后的圆形Bitmap。
阅读全文