我怎样才能扩大我在Android的位图基础上的宽度和高度的像素?(How can I scale m

2019-09-29 12:24发布

我希望能够根据屏幕大小缩放我的形象。 在一个正常的Java applet的我会做类似下面....

int windowWidth = 1280;
int windowHeight = 720;

Image image;

public void paint(Graphics g)
{
    g.drawImage(image, x, y, windowWidth / 4, windowHeight / 16, null);
}

我一直在寻找的答案了一段时间,我的一切似乎找到调高一些奇怪的结果。 从我读我可能需要做与分辨率无关像素的东西,但我不是100%肯定。

我试图避免的事情是不必创建一套全新的图片和图示只是为了不同的屏幕密度。 我上面表明,该方法适用于调整桌面应用程序没有问题。

编辑:

这是我一直在使用Android中绘制的图像内容。

Matrix matrix = new Matrix();
Bitmap image;

Constuctor....()
{
image = BitmapFactory.decodeResource(context.getResources(), R.drawable.play);
}

public void render(Canvas c)
{
    c.drawBitmap(image, matrix, null);
}

Answer 1:

喜见我已经发布thsi问题规模的位图

如果您正在使用的画布得到画布的宽度和高度。 或者,如果你想拥有它正式的正常布局,然后获得通过的宽度和高度

DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
 dispWidth=metrics.widthPixels;
 dispheight=metrics.heightPixels;

然后根据你的要求,这样的扩展我们的位图。 在此我必须有8块砖头所以我用列数除以所采取的宽度

      String strwidth=String.valueOf(((float)(bmp.getWidth())/NO_COLUMNS));
        if(strwidth.contains("."))
        {
            scalebit=Bitmap.createScaledBitmap(bmp, (int)(Math.ceil(((float)bmp.getWidth())/NO_COLUMNS))*NO_COLUMNS, bmp.getHeight(), true);
        }
        else
        {
            scalebit=bmp;
        }


文章来源: How can I scale my bitmap in Android based on the width and height pixels?