我正在开发 Android 应用程序,在我的应用程序中我必须显示用户个人资料图像,如此图所示。我使用了 CircularImage,但我需要将指针放在底部,任何人都可以帮助我如何创建指针位于底部的圆形图像
最佳答案
您可以将指针(蓝色背景)设置为ImageView
的背景,并将用户图像设置为位图
中的src
您还需要将您的位图
进行舍入,通过这种方法您可以获得圆形位图:
public static Bitmap toRoundBitmap(Bitmap bitmap) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float roundPx;
float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;
if (width <= height) {
roundPx = width / 2.0f;
top = 0;
bottom = width;
left = 0;
right = width;
height = width;
dst_left = 0;
dst_top = 0;
dst_right = width;
dst_bottom = width;
} else {
roundPx = height / 2.0f;
float clip = (width - height) / 2;
left = clip;
right = width - clip;
top = 0;
bottom = height;
width = height;
dst_left = 0;
dst_top = 0;
dst_right = height;
dst_bottom = height;
}
Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect src = new Rect((int) left, (int) top, (int) right,
(int) bottom);
final Rect dst = new Rect((int) dst_left, (int) dst_top,
(int) dst_right, (int) dst_bottom);
final RectF rectF = new RectF(dst);
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, src, dst, paint);
return output;
}
并将圆形位图设置为 ImageView 的 src:
imageView.setImageBitmap(toRoundBitmap(mBitMap));
为了获得更好的 View ,请在 xml 中的 ImageView
标记中设置 android:scaleType="fitStart"
关于java - Android 带指针的圆形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967941/