3

我使用 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 方法在此图像上绘制其他图像?

4

2 回答 2

16

试试这个:

...
Rect dest = new Rect(0, 0, getWidth(), getHeight());
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(background, null, dest, paint);

这会将位图的一部分(“null”表示整个位图)渲染到 dest 指定的屏幕区域(在这种情况下是视图的整个区域)。

请注意,这将/可能会更改宽高比,具体取决于背景,您可能需要修复它。

于 2011-10-20T07:10:15.130 回答
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
于 2019-07-23T07:05:37.757 回答