Java 带指针的Android圆形图像
我正在开发Android应用程序,在我的应用程序中,我必须显示用户配置文件图像,如图所示。我曾经使用过CircularImage,但我需要将指针放在底部,有人能帮我创建底部带有指针的圆形图像吗 您还需要将Java 带指针的Android圆形图像,java,android,Java,Android,我正在开发Android应用程序,在我的应用程序中,我必须显示用户配置文件图像,如图所示。我曾经使用过CircularImage,但我需要将指针放在底部,有人能帮我创建底部带有指针的圆形图像吗 您还需要将位图四舍五入,通过此方法,您可以获得圆形位图: public static Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight();
位图
四舍五入,通过此方法,您可以获得圆形位图:
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;
}
要获得更好的视图,请在xml中的ImageView
标记中设置android:scaleType=“fitStart”
,您可以将指针(蓝色背景)设置为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;
}
要获得更好的视图,请在xml的ImageView
标记中设置android:scaleType=“fitStart”
,非常感谢,我现在就检查一下。这是我工作的一个小预览。此方法使您的图像成为圆形,然后您可以在图像视图中使用自定义bg。类似上面的图像。非常感谢,我现在将检查此方法。这是我工作的一个小预览。此方法使您的图像成为圆形,然后您可以在上面的自定义bg.like图像的imageview中使用它。