这是所有安卓设备的好方法吗?我有一个 imageview 作为背景,我根据 android 设备的分辨率调整它的大小。
private Bitmap getResizedBitmap()
{
Bitmap resizedBitmap;
Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.background_3ball);
x640 = bmp.getWidth();
y960 = bmp.getHeight();
if(screenRatio > ratioOrginal)
{
imageWidth=(int)((double)y960*widthMain/heightMain);
imageHeight=y960;
int x = (x640-imageWidth)/2;
resizedBitmap = Bitmap.createBitmap(bmp,x,0, imageWidth, imageHeight);
}
else if(screenRatio < ratioOrginal)
{
imageWidth=x640;
imageHeight=(int)((double)x640*heightMain/widthMain);
int y = (y960-imageHeight)/2;
resizedBitmap = Bitmap.createBitmap(bmp,0,y, imageWidth, imageHeight);
}
else
{
return bmp;
}
tw.setText(widthMain + "\n" + heightMain + "\n" + imageWidth + "\n" + imageHeight);
return resizedBitmap;
}
private void SetBackground()
{
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
widthMain = metrics.widthPixels;
heightMain = metrics.heightPixels;
screenRatio = ((double)heightMain) / widthMain;
Bitmap resizedBitmap = getResizedBitmap();
imageBackground.setImageBitmap(resizedBitmap);
}
使用 dp 或其他东西会使图像看起来很糟糕。例如,我在背景中有圆形,它看起来像一个椭圆,同时自动缩放它
for example my image has dimensions of 640x960.
ratioOrginal is 960:640=1.5
if a device is mdpi and having dimension of 320x480
screenRatio=480/320=1.5 and it is okay.
but if it is mdpi and having dimension of 480x800
screenRatio=900/480 is NOT 1.5.
both are mdpi, but the ratio is not standard.
I can not understand how people do this
in supporting multiple screens there is one xml for mdpi's
how it get's different resolutions.