欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 圖片顯示與屏幕適配的問(wèn)題

 更新時(shí)間:2017年08月09日 11:50:37   投稿:lqh  
這篇文章主要介紹了Android 圖片顯示與屏幕適配的問(wèn)題的相關(guān)資料,Android的分辨率問(wèn)題是每個(gè)Android 開(kāi)發(fā)者頭疼的問(wèn)題,那么這里給大家介紹個(gè)萬(wàn)能辦法,需要的朋友可以參考下

Android 圖片顯示與屏幕適配的問(wèn)題

在Android開(kāi)發(fā)中比較頭疼的是Android的分辨率問(wèn)題,那么這里給大家介紹個(gè)萬(wàn)能辦法,這個(gè)辦法的優(yōu)點(diǎn)是可以實(shí)現(xiàn)萬(wàn)能適應(yīng),給開(kāi)發(fā)和美工設(shè)計(jì)提供了依據(jù),但是對(duì)開(kāi)發(fā)來(lái)說(shuō)代碼量也不少,具體辦法:

(1)獲取屏幕的尺寸

WindowManager windowManager = (WindowManager)     getSystemService(Context.WINDOW_SERVICE);
Display d = windowManager.getDefaultDisplay();
mWidth = d.getWidth();mHeight = d.getHeight();
DisplayMetrics dm = getResources().getDisplayMetrics()
mScreenDensity = dm.density;

(2)美工設(shè)計(jì)圖的尺寸

uiWidth,uiHeight

(3)獲取縮放比例

float scaleWidth = mWidth / uiWidth;
float scaleHeight = mHeight/ uiHeight;

(4)所有布局的尺寸用代碼實(shí)現(xiàn):

public static int getWidthSize(int size) {
        return (int) (size * scaleWidth);
    }

    public static int getHightSize(int size) {
        return (int) (size * scaleHeight);
    }

    public static float getTextSize(int pxSize) {
        return (pxSize * scaleHeight) / mScreenDensity;
    }

    public static void setViewSize(int width, int height, View v) {
        int paramWidth = getWidthSize(width);
        int paramHeight = getHightSize(height);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                .getLayoutParams();
        if (width != INVALID) {
            params.width = paramWidth;
        }
        if (height != INVALID) {
            params.height = paramHeight;
        }
        v.setLayoutParams(params);
    }

    public static void setViewPadding(int left, int top, int right, int bottom,
            View v) {
        left = getWidthSize(left);
        top = getHightSize(top);
        right = getWidthSize(right);
        bottom = getWidthSize(bottom);
        v.setPadding(left, top, right, bottom);
    }

    public static void setViewMargin(int left, int top, int right, int bottom,
            View v) {
        int paramLeft = getWidthSize(left);
        int paramTop = getHightSize(top);
        int paramRight = getWidthSize(right);
        int paramBottom = getHightSize(bottom);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                .getLayoutParams();
        if (left != INVALID) {
            params.leftMargin = paramLeft;
        }
        if (right != INVALID) {
            params.rightMargin = paramRight;
        }
        if (top != INVALID) {
            params.topMargin = paramTop;
        }
        if (bottom != INVALID) {
            params.bottomMargin = paramBottom;
        }
        v.setLayoutParams(params);}

(5)這里是設(shè)置尺寸的代碼:

setViewSize(100, 100, mView);
    setViewMargin(20, 0, 0, 20, mView);
    setViewPadding(10, 10, 10, 10, mView);
    mTextView.setTextSize(getTextSize(30));

由上在設(shè)計(jì)效果圖時(shí),可對(duì)圖內(nèi)元素進(jìn)行尺寸標(biāo)注,程序即可實(shí)現(xiàn)按比例縮放。

以上就是Android 圖片顯示與屏幕適配的問(wèn)題的萬(wàn)能解決辦法,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論