0

我试图将一个 LinearLayout 的背景颜色更改为两种颜色,原因如下图所示:

两种颜色

我正在编写这段代码,但是这个 LinearLayout 的问题是这两个部分采用了第三种不同的颜色,就像这张图片:

一种颜色

我不知道我的代码逻辑有什么问题,或者我不能在 Android 中做类似的事情?

代码:

c = (LinearLayout) findViewById(R.id.cell);
c.setBackgroundColor(getColor(container.get(0)));
c.setBackgroundColor(getColor(container.get(1)));
int width = c.getWidth(), height = c.getHeight();
if (width == 0 || height == 0) {
    width = 100;
    height = 100;
}
Bitmap bitmap;
try {

    bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
} catch (Exception e) {
    e.printStackTrace();
    return;
}

Canvas canvas = new Canvas(bitmap);

Path path = new Path();
path.moveTo(0, height);
path.lineTo(0, 0);
path.lineTo(width, 0);
path.lineTo(0, height);
path.close();

Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setColor(getColor(container.get(0)));
canvas.drawPath(path, paint);

path = new Path();
path.moveTo(width, 0);
path.lineTo(width, height);
path.lineTo(0, height);
path.lineTo(width, 0);
path.close();

paint = new Paint();
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setColor(getColor(container.get(1)));
canvas.drawPath(path, paint);
4

1 回答 1

0

我解决了我的问题,问题在于在 setColor 方法中解析颜色的方式我替换了这个:

paint.setColor(getColor(container.get(1)));

经过:

paint.setColor(ResourcesCompat.getColor(getResources(),getColor(container.get(1)), null));

现在一切正常。

于 2017-06-01T16:17:34.167 回答