我想知道是否可以在现有的imageView上绘制圆圈?
我想在我的图片上创建一个圆圈,这是我的代码:
public void drawCircle(ImageView image, int x, int y)
{
BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
float radius = 20;
canvas.drawCircle(x, y, radius, paint);
image.setImageBitmap(bitmap);
}
但不幸的是,我收到了以下错误:
java.lang.NullPointerException:尝试调用虚方法 ' android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()'在null对象上 参考
你能告诉我我的代码有什么问题吗?
谢谢!
答案 0 :(得分:1)
你可以为此编写一个XML来设置椭圆形状,就像这样
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<gradient android:startColor="YOUR_COLOR" android:endColor="YOUR_COLOR"
android:angle="270"/>
</shape>
将其添加到drawable文件夹,然后添加到imageView上 根据您的喜好将其设置为源或背景。 确保在另一个布局顶部使用它,之后设置高度和宽度相同的数量
也可以访问这个以获得更多想法 How to create an imageView with shape circle and have a border?