我在自定义视图中将drawable用于背景。当我在realme c2中运行代码并在设置中启用暗模式时,可绘制颜色没有改变。这是方法。
public static void getShareBitmap(Canvas canvas, Context context, Bitmap bitmap, String nickName) {
//Draw the original picture
Paint paint = new Paint();
paint.setColor(Color.GREEN);
//Drawable
Drawable drawable1 = ContextCompat.getDrawable(context, R.drawable.bg_agenda_list);
assert drawable1 != null;
Bitmap shareBitmap = drawableToBitmap(drawable1);
float top = bitmap.getHeight() - 10 - shareBitmap.getHeight();
canvas.drawBitmap(shareBitmap, 10, top, paint);
}
//Drawable to bitmap method
public static Bitmap drawableToBitmap(Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
}
Bitmap bitmap = Bitmap.createBitmap(300, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}
// Ondraw方法
protected void onDraw(Canvas canvas) {
Bitmap bitmap = Bitmap.createBitmap(getWidth(), 300, Bitmap.Config.ARGB_8888);
getShareBitmap(canvas,getContext(),bitmap,"JACK");
}