国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 圖片顯示與屏幕適配的問題

2019-12-12 02:16:59
字體:
供稿:網(wǎng)友

Android 圖片顯示與屏幕適配的問題

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

(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è)計圖的尺寸

uiWidth,uiHeight

(3)獲取縮放比例

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

(4)所有布局的尺寸用代碼實現(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è)計效果圖時,可對圖內(nèi)元素進行尺寸標(biāo)注,程序即可實現(xiàn)按比例縮放。

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 英超| 巴楚县| 常熟市| 聊城市| 南江县| 高州市| 客服| 普安县| 都兰县| 仙居县| 清远市| 佛冈县| 化州市| 南川市| 新丰县| 历史| 东兰县| 屏山县| 黄平县| 竹山县| 柘城县| 海宁市| 抚远县| 岗巴县| 北票市| 奉化市| 建始县| 卓尼县| 板桥市| 资兴市| 江孜县| 贡嘎县| 黔西县| 神农架林区| 沾化县| 凌源市| 曲水县| 阿鲁科尔沁旗| 沙雅县| 深泽县| 饶阳县|