我使用onDraw方法显示图像,如下所示:
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.photo0);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(background, 0, 0, null);
我想将此图像设置为背景,但它仅显示在屏幕的一部分上。如何将其设置为全屏?
有一种方法可以将图像设置为xml的背景,并从onDraw方法在此图像上绘制其他图像吗?
答案 0 :(得分:14)
试试这个:
...
Rect dest = new Rect(0, 0, getWidth(), getHeight());
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(background, null, dest, paint);
这会将位图的一部分(“null”表示整个位图)渲染到dest指定的屏幕区域(在这种情况下是视图的整个区域)。
请注意,这可能/可能会改变宽高比,具体取决于背景,您可能需要修复它。
答案 1 :(得分:0)
这对我有用。
WindowManager wm = (WindowManager) mContext
.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width=size.x;
int height= size.y;
Rect dest = new Rect(0, 0, width, height);
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(bm, null, dest, paint); //bm is your bitmap