我想在我的应用程序中使用圆形ImageView。我发现了一些代码,但这只是圆角图像而不是圆圈。这是我的代码。同时检查图像。Android中的Circular Imageview
public class CircularImageView extends android.support.v7.widget.AppCompatImageView {
public CircularImageView(Context context) {
super(context);
}
public CircularImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CircularImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
Drawable drawable = getDrawable();
if (drawable == null) {
return;
}
if (getWidth() == 0 || getHeight() == 0) {
return;
}
Bitmap b = ((BitmapDrawable) drawable).getBitmap();
Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
int w = getWidth(), h = getHeight();
Bitmap roundBitmap = getRoundBitmap(bitmap, w);
canvas.drawBitmap(roundBitmap, 0, 0, null);
}
public static Bitmap getRoundBitmap(Bitmap bmp, int radius) {
Bitmap sBmp;
if (bmp.getWidth() != radius || bmp.getHeight() != radius) {
float smallest = Math.min(bmp.getWidth(), bmp.getHeight());
float factor = smallest/radius;
sBmp = Bitmap.createScaledBitmap(bmp, (int)(bmp.getWidth()/factor), (int)(bmp.getHeight()/factor), false);
} else {
sBmp = bmp;
}
Bitmap output = Bitmap.createBitmap(radius, radius,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xffa19774;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, radius, radius);
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(Color.parseColor("#BAB399"));
canvas.drawCircle(radius/2 + 0.7f,
radius/2 + 0.7f, radius/2 + 0.1f, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(sBmp, rect, rect, paint);
return output;
}
}
,这里是xml文件
<com.example.CircularImageView
android:layout_width="70dp"
android:layout_height="70dp"
app:srcCompt="@drawable/dummy />
我读了计算器,但没有很多答案,根据我的要求找到。我不想使用任何我想创建自己的代码的库。
我是新来的android可以请让我知道我想我的代码中缺少。
“我发现了一些代码,但这只是圆形图像不能圈出来的 - ”请解释一下这个区别。您可能会考虑在某处上传图片并从您的“问题”链接到该图片。 “根据我的要求找不到任何东西” - 请详细解释**,**,你的“要求”是什么。 – CommonsWare
@CommonsWare请检查我更新我的问题。圆形意味着它只是圆角 –
好吧,当我在Google上搜索“android imageview圆角”时,我找到了各种解决方案。显然,你必须做出类似的搜索。当你尝试[这些答案](http://stackoverflow.com/q/20743859/115145)和[这篇博客文章](http://www.viralandroid.com/2015/11/how-to-make-imageview -image-rounded-corner-in-android.html)等等,你遇到了什么问题? – CommonsWare