有没有办法使用包含固定单色的ImageView以编程方式创建图像?
答案 0 :(得分:1)
您不需要ImageView
。任何视图(即FrameLayout
)只要您使用setBackgroundColor()
或XML android:background
属性将其背景颜色设置为所需的颜色即可。
<FrameLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#ff0000 />
答案 1 :(得分:0)
您可以使用View或如果您想使用ImageView
,那么您可以在后台使用任何单色图像。
<View
android:id="@+id/view_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#ff0000 />
借助视图 id ,您可以在任何类似的实例中更改颜色。
来自Java(以编程方式)
View singlecolorImage= (View) findViewById(R.id.linear);
singlecolorImage.setBackgroundColor(ContextCompat.getColor(this, R.color.colorPrimary));
答案 2 :(得分:0)
试试这个......
初始化一个新的Bitmap对象
Bitmap bitmap = Bitmap.createBitmap(
500, // Width
300, // Height
Bitmap.Config.ARGB_8888 // Config
);
初始化一个新的Canvas实例
Canvas canvas = new Canvas(bitmap);
为画布背景绘制纯色
canvas.drawColor(Color.LTGRAY);
初始化一个新的Paint实例以绘制圆
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setAntiAlias(true);
计算画布的可用半径
int radius = Math.min(canvas.getWidth(),canvas.getHeight()/2);
将像素值设置为围绕圆圈填充
int padding = 5;
最后,在画布上绘制圆圈
canvas.drawCircle(
canvas.getWidth() / 2, // cx
canvas.getHeight() / 2, // cy
radius - padding, // Radius
paint // Paint
);
在app界面上显示新创建的位图
mImageView.setImageBitmap(bitmap);