Android调整大小按钮,用于不同分辨率的缩放布局



这是适用于所有android设备的好方法吗?我有一个图像视图作为背景,我根据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.

我建议使用ScaleType。

Android建议使用dp,并为不同的屏幕大小创建不同的布局文件。

支持多屏幕

最新更新