1

我希望能够根据屏幕尺寸缩放图像。在一个普通的java小程序中,我会做如下的事情......

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);
}
4

1 回答 1

1

嗨,看到这个问题我已经发布了比例位图

如果您使用的是画布,请获取画布的宽度和高度。或者如果你想让它有正式的正常布局,那么通过使用获取宽度和高度

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;
        }
于 2013-02-05T06:19:05.607 回答