Android 圖片顯示與屏幕適配的問題
Android 圖片顯示與屏幕適配的問題
在Android開發(fā)中比較頭疼的是Android的分辨率問題,那么這里給大家介紹個萬能辦法,這個辦法的優(yōu)點是可以實現(xiàn)萬能適應,給開發(fā)和美工設計提供了依據(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)美工設計圖的尺寸
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)這里是設置尺寸的代碼:
setViewSize(100, 100, mView);
setViewMargin(20, 0, 0, 20, mView);
setViewPadding(10, 10, 10, 10, mView);
mTextView.setTextSize(getTextSize(30));
由上在設計效果圖時,可對圖內元素進行尺寸標注,程序即可實現(xiàn)按比例縮放。
以上就是Android 圖片顯示與屏幕適配的問題的萬能解決辦法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Android代碼實現(xiàn)AdapterViews和RecyclerView無限滾動
這篇文章主要為大家詳細介紹了Android代碼實現(xiàn)AdapterViews和RecyclerView無限滾動的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07
Flutter?Getx中的put和lazyPut函數(shù)使用案例解析
這篇文章主要為大家介紹了Flutter?Getx中的put和lazyPut函數(shù)使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程
SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。這篇文章主要介紹了Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程,需要的朋友可以參考下2018-09-09
Android實現(xiàn)游戲中的漸隱和漸現(xiàn)動畫效果
本文給大家分享android中實現(xiàn)游戲中的漸隱漸現(xiàn)的動畫效果,在游戲開發(fā)中經(jīng)常會遇到,對android漸隱漸現(xiàn)效果感興趣的朋友可以參考下本教程2016-09-09
淺談Android實踐之ScrollView中滑動沖突處理解決方案
涉及到了ViewPager,MapView,ListView,就需要ScrollView來做一下支援,這篇文章主要介紹了淺談Android實踐之ScrollView中滑動沖突處理解決方案,有需要的可以來了解一下。2016-12-12

