如何在android中以编程方式使用ImageView创建单色图像?

时间:2017-11-14 09:49:59

标签: android uiimageview

有没有办法使用包含固定单色的ImageView以编程方式创建图像?

3 个答案:

答案 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);