亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

android 分辨率適配的方法

2020-04-11 12:40:47
字體:
供稿:網(wǎng)友
以前在公司做項目的時候,遇到了分辨率的適配問題,說起來當(dāng)時挺糾結(jié)的,因為沒有外網(wǎng),所以這個問題,都是黑暗中摸索的,嘗試了許多方法,最后和徒弟們一起搞出了這個方法,具體行不行,先和大家分享下,這個方法不能說萬能的,但是最起碼它解決了分辨率跟密集度的關(guān)系,但是也引來一個問題,就是布局會因為圖片資源小而失真,所以這也需要美工的同志多多配合的,廢話不說,貼代碼:
第一步,先創(chuàng)建一個view信息的javabean類
復(fù)制代碼 代碼如下:

package com.zte.layout.adapter;
import android.view.View;
/**
* 存儲View信息的JavaBean類
*
* @author
*
*/
public class LayoutInformation
{
/**
* View的對象
*/
private View view;
/**
* View的寬度
*/
private double viewWidth;
/**
* View的高度
*/
private double viewHeight;
/**
* View距左邊的距離,即marginLeft
*/
private double viewMarginLeft;
/**
* View距頂部的距離,即MarginTop;
*/
private double viewMarginTop;
/**
* 父類布局的類型為相對布局
*/
public static int R=-1;
/**
* 父類布局的類型為線性布局
*/
public static int L=-2;
/**
* 此View的父類布局的類型
*/
private int parentLayoutType;
/**
* 存儲View信息的JavaBean類
*
* @param view
* View的對象
* @param viewWidth
* View的寬
* @param viewHeight
* View的高
* @param viewMarginLeft
* View距左邊的距離
* @param viewMargdoubleop
* View距上部的距離
* @param parentLayoutType
* 父類布局的類型,LayoutInformation.R
* (表示相對布局)或者LayoutInformation.L(表示線性布局)
*/
public LayoutInformation(View view, double viewWidth, double viewHeight,
double viewMarginLeft, double viewMarginTop, int parentLayoutType)
{
this.view = view;
this.viewWidth = viewWidth;
this.viewHeight = viewHeight;
this.viewMarginLeft = viewMarginLeft;
this.viewMarginTop = viewMarginTop;
this.parentLayoutType=parentLayoutType;
}
/**
* 獲取View的對象
*
* [url=home.php?mod=space&uid=7300]@return[/url] View對象
*/
public View getView()
{
return view;
}
/**
* 設(shè)置View的對象
*/
public void setView(View view)
{
this.view = view;
}
/**
* 獲取View的寬度
*
* @return View的寬度,double型
*/
public double getViewWidth()
{
return viewWidth;
}
/**
* 設(shè)置View的寬度,double型
*
* @param viewWidth
*/
public void setViewWidth(double viewWidth)
{
this.viewWidth = viewWidth;
}
/**
* 獲取View的高度
*
* @return View的高度,double型
*/
public double getViewHeight()
{
return viewHeight;
}
/**
* 設(shè)置View的高度,double型
*
* @param viewHeight
*/
public void setViewHeight(double viewHeight)
{
this.viewHeight = viewHeight;
}
/**
* 獲取View距離左邊的距離
*
* @return View距離左邊的距離,double型
*/
public double getViewMarginLeft()
{
return viewMarginLeft;
}
/**
* 設(shè)置View距離左邊的距離,double型
*
* @param viewMarginLeft
*/
public void setViewMarginLeft(double viewMarginLeft)
{
this.viewMarginLeft = viewMarginLeft;
}
/**
* 獲取View距離上部的距離
*
* @return View距離上部的距離,double型
*/
public double getViewMarginTop()
{
return viewMarginTop;
}
/**
* 設(shè)置View距離上部的距離,double型
*
* @param viewMargdoubleop
*/
public void setViewMarginTop(double viewMarginTop)
{
this.viewMarginTop = viewMarginTop;
}
/**
* 獲取父類布局的類型
* @return parentLayoutType,int型
*/
public int getParentLayoutType()
{
return parentLayoutType;
}
/**
* 設(shè)置父類布局的類型
* @param parentLayoutType
*/
public void setParentLayoutType(int parentLayoutType)
{
this.parentLayoutType = parentLayoutType;
}
}

第二步:創(chuàng)建一個計算方法
復(fù)制代碼 代碼如下:

import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
/**
* 分配率通配類
*
* @author
*
*/
public class MyLayoutAdapter
{
/**
* 基準(zhǔn)分辨率的寬
*/
public double STANDARD_SCREEN_WIDTH;
/**
* 基準(zhǔn)分辨率的高
*/
public double STANDARD_SCREEN_HEIGHT;
/**
* 系統(tǒng)當(dāng)前的分辨率的寬
*/
public double CURRENT_SCREEN_WIDTH;
/**
* 系統(tǒng)當(dāng)前的分辨率的高
*/
public double CURRENT_SCREEN_HEIGHT;
/**
* 基準(zhǔn)屏幕密度
*/
public static final double STANDARD_DENSITY = 160;
/**
* 當(dāng)前屏幕密度
*/
private double CURRENT_DENSITY;
/**
* 屏幕密度比例
*/
private double DENSITY_RATIO;
/**
* 屏幕寬度比例
*/
private double WIDTH_RATIO;
/**
* 屏幕高度比例
*/
private double HEIGHT_RATIO;
/**
* 組件基準(zhǔn)的寬度
*/
private double viewStandardWidth;
/**
* 組件基準(zhǔn)的高度
*/
private double viewStandardHeight;
/**
* 組件基準(zhǔn)的距離左邊的距離
*/
private double viewStandardMarginLeft;
/**
* 組件基準(zhǔn)的距離頂部的距離
*/
private double viewStandardMarginTop;
/**
* 組件當(dāng)前的寬
*/
private double viewCurrentWidth;
/**
* 組件當(dāng)前的高
*/
private double viewCurrentHeight;
/**
* 組件當(dāng)前距離左邊的距離
*/
private double viewCurrentMarginLeft;
/**
* 組件當(dāng)前距離頂部的距離
*/
private double viewCurrentMarginTop;
/**
* UI組件的對象
*/
private View view;
/**
* 此View的父類布局的類型
*/
private int parentLayoutType;
/**
* 父類布局的類型為相對布局
*/
private final int LAYOUT_TYPE_RELATiVELAYOUT = LayoutInformation.R;
/**
* 父類布局的類型為線性布局
*/
private final int LAYOUT_TYPE_LINEARLAYOUT = LayoutInformation.L;
/**
* 布局屬性為wrap_content
*/
private final int LAYOUTPARAMS_WARP_CONTENT = LayoutParams.WRAP_CONTENT;
/**
* 布局屬性為fill_parent
*/
private final int LAYOUTPARAMS_FILL_PARENT = LayoutParams.FILL_PARENT;
private Context context;
/**
* 類對象實例化時,設(shè)置 基準(zhǔn)屏幕寬度,高度
*
* @param context
* Context
* @param standardWidth
* 基準(zhǔn)屏幕的寬
* @param standardHeight
* 基準(zhǔn)屏幕的高
*/
public MyLayoutAdapter(Context context, double standardWidth,
double standardHeight)
{
this.context = context;
getScreenSize();
STANDARD_SCREEN_HEIGHT = standardHeight;
STANDARD_SCREEN_WIDTH = standardWidth;
// 計算寬高比率
WIDTH_RATIO = CURRENT_SCREEN_WIDTH / STANDARD_SCREEN_WIDTH;
HEIGHT_RATIO = CURRENT_SCREEN_HEIGHT / STANDARD_SCREEN_HEIGHT;
}
/**
* 獲取當(dāng)前屏幕大小和密度
*/
private void getScreenSize()
{
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay()
getMetrics(displayMetrics);
CURRENT_SCREEN_WIDTH = displayMetrics.widthPixels;
CURRENT_SCREEN_HEIGHT = displayMetrics.heightPixels;
CURRENT_DENSITY = displayMetrics.densityDpi;
DENSITY_RATIO = STANDARD_DENSITY / CURRENT_DENSITY;
}
/**
* 進行通配
*
* @param listdata
*/
public void setViewLayout(List<LayoutInformation> listdata)
{
for (int i = 0; i < listdata.size(); i++)
{
view = listdata.get(i).getView();
viewStandardWidth = listdata.get(i).getViewWidth();
viewStandardHeight = listdata.get(i).getViewHeight();
viewStandardMarginLeft = listdata.get(i).getViewMarginLeft();
viewStandardMarginTop = listdata.get(i).getViewMarginTop();
setLayoutParams();
viewCurrentMarginLeft = viewStandardMarginLeft * WIDTH_RATIO;
viewCurrentMarginTop = viewStandardMarginTop * HEIGHT_RATIO;
parentLayoutType = listdata.get(i).getParentLayoutType();
setLayoutByParentLayoutType();
}
}
/**
* 判斷布局屬性的值,設(shè)置布局的屬性
*/
private void setLayoutParams()
{
// 如果基準(zhǔn)的寬是wrap_content或者fill_parent則使用原值,否則進行計算得到通配后的值
if (viewStandardWidth == LAYOUTPARAMS_WARP_CONTENT
|| viewStandardWidth == LAYOUTPARAMS_FILL_PARENT)
{
viewCurrentWidth = viewStandardWidth;
} else
{
viewCurrentWidth = viewStandardWidth * WIDTH_RATIO;
}
// 如果基準(zhǔn)的寬是wrap_content或者fill_parent則使用原值,否則進行計算得到通配后的值
if (viewStandardHeight == LAYOUTPARAMS_WARP_CONTENT
|| viewStandardHeight == LAYOUTPARAMS_FILL_PARENT)
{
viewCurrentHeight = viewStandardHeight;
} else
{
viewCurrentHeight = viewStandardHeight * HEIGHT_RATIO;
}
}
/**
* 通過判斷此View父類的布局類型,給此View設(shè)置布局
*/
private void setLayoutByParentLayoutType()
{
if (parentLayoutType == LAYOUT_TYPE_RELATiVELAYOUT)
{
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
(int) viewCurrentWidth, (int) viewCurrentHeight);
params.setMargins((int) viewCurrentMarginLeft,
(int) viewCurrentMarginTop, 0, 0);
view.setLayoutParams(params);
} else if (parentLayoutType == LAYOUT_TYPE_LINEARLAYOUT)
{
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
(int) viewCurrentWidth, (int) viewCurrentHeight);
params.setMargins((int) viewCurrentMarginLeft,
(int) viewCurrentMarginTop, 0, 0);
view.setLayoutParams(params);
}
}
/**
* 設(shè)置字體大小
*
* @param standardSize
* 原始大小
* @return int
*/
public int setTextSize(int standardSize)
{
int currentSize;
currentSize = (int) (standardSize * WIDTH_RATIO * DENSITY_RATIO);
return currentSize;
}
}

第三步,寫一個接口
復(fù)制代碼 代碼如下:

public interface InitAllView{
/**
* 初始化控件的大小
*/
public void initAllView();
}

第四步:代碼控制
復(fù)制代碼 代碼如下:

/**
* 通配方法
*/
private void initWildcard() {
myLayout = new MyLayoutAdapter(this, 320, 480);
listInfo = new ArrayList<LayoutInformation>();
listInfo.add(new LayoutInformation(mBtn1, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 0, 0, LayoutInformation.R));
listInfo.add(new LayoutInformation(mNowRegisterBtn, 80, 27.3, 14.7, 0,
LayoutInformation.R));
listInfo.add(new LayoutInformation(mNextRegisterBtn, 80, 27.3, 14.7, 0,
LayoutInformation.R));
// listInfo.add(new LayoutInformation(mCheckBtn, 17.3,17.3, 14.7, 0,
// LayoutInformation.L));
mBtn1.setTextSize(myLayout.setTextSize(12));
mNowRegisterBtn.setTextSize(myLayout.setTextSize(12));
mNextRegisterBtn.setTextSize(myLayout.setTextSize(12));
myLayout.setViewLayout(listInfo);
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
av影视在线| 一级黄色片日本| 日韩久久久久久久| 中文字幕在线视频不卡| 九一免费在线观看| 日精品一区二区三区| 91人妻一区二区| 日韩视频在线观看国产| 欧美精品日本| 91蝌蚪国产九色| 欧美精品亚洲一区二区在线播放| 综合伊思人在钱三区| 99久久精品国产麻豆演员表| 色一情一伦一子一伦一区| 日本免费看片网站| 老司机免费视频一区二区| 久久精品国产69国产精品亚洲| 中文文字幕一区二区三三| 国产三级视频在线播放| 久久久久999| 成人黄视频免费| 国产精品麻豆欧美日韩ww| 日韩成人午夜电影| 一个人看的www视频免费观看| 黄色激情网站| eeuss鲁片一区| 国产午夜伦鲁鲁| 一区二区免费在线视频| 国产又大又黑又粗| 97视频热人人精品免费| 污视频在线观看免费网站| 亚洲特黄一级片| 僵尸再翻生在线观看| 日韩午夜小视频| xxxx在线免费观看| 超碰影院在线观看| 久久久久久久电影一区| 久久久久久久久久99| 国产精品福利网| 久久久久久成人| 久久久精品国产网站| 97精品视频| 麻豆一区二区在线观看| 欧美午夜黄色| 国产在线一区二区三区播放| palipali轻量版永久网页入口| 360天大佬第二季在线观看| 国产视频在线一区| 538国产精品视频一区二区| 欧美日韩精品中文字幕一区二区| 97视频在线观看成人| 香蕉网在线播放| 最新欧美色图| 天天摸天天舔天天操| 国产精品91久久| 精品免费av一区二区三区| 日韩情爱电影在线观看| 国产精品一区在线观看你懂的| 91小视频免费看| 国产伦精品一区二区三区88av| 中文字幕精品—区二区四季| 亚洲av片不卡无码久久| 狂野欧美性猛交xxxx| 日韩国产网站| 国产精品jizz| 一区二区三区在线免费看| 国内精品免费**视频| 国产一卡2卡3卡四卡网站| 啊啊啊啊啊好爽| 97中文在线| 7777奇米亚洲综合久久| 成人h视频在线观看| 国产一区二区网站| 日韩黄色高清视频| 国产日韩欧美一区二区三区在线观看| 国产日韩在线不卡| 成人三级高清视频在线看| 欧美乱妇高清无乱码免费| 激情五月婷婷六月| 中文字幕成在线观看| 久久中文亚洲字幕| 亚洲欧美中文日韩在线| 国产91aaa| 中文在线a√在线8| 97在线播放视频| 欧美激情在线视频二区| 亚州欧美精品suv| 99热自拍偷拍| 亚洲女同ⅹxx女同tv| 六月丁香婷婷色狠狠久久| 神马久久一区二区三区| 国产午夜精品久久久久久久| 亚洲精品久久嫩草网站秘色| 亚洲美女性囗交| 日韩专区视频网站| 精品国产99国产精品| 国产精品精品视频一区二区三区| 爆操妹子视频在线观看| 国产高清免费在线播放| 久久国产精品亚洲va麻豆| 久久久久久久久久久久久久久久久久久| 成人爽a毛片一区二区| 日韩免费高清视频网站| 亚洲伊人伊成久久人综合网| 国产又黄又粗又爽| 日本亚洲一区二区| 日韩av成人网| 日韩欧美国产综合在线一区二区三区| 欧美精品色视频| 亚洲一卡二卡三卡四卡无卡网站在线看| 午夜精品久久一牛影视| 99久久亚洲| 99re这里只有精品视频首页| 中文字幕人妻一区二| 91人人澡人人爽人人精品| 国产综合精品一区二区三区| 精品久久久久久亚洲综合网站| 久久国产精品亚洲77777| xxav视频| xf在线a精品一区二区视频网站| 亚洲国产精品99久久| 69亚洲精品久久久蜜桃小说| 精品免费在线| 热99在线视频| 中文字幕第38页| aa一级黄色片| 欧美日韩午夜影院| 欧美激情综合色综合啪啪五月| 亚洲自拍偷拍网站| 中文日韩在线| 中文字幕第15页| 欧美一级大片在线观看| 黄色小视频免费观看| 亚洲一级二级| 国产亲伦免费视频播放| 青青精品视频播放| 亚洲精品在线91| 精品性高朝久久久久久久| 国产成人精品综合网站| 国内精品免费在线观看| 日韩特级黄色片| 成人网站免费观看| 亚洲成色www8888| 波多野结衣先锋影音| 中文字幕一区电影| www.99av| 欧美xxxxxxxx| 免费一级特黄特色毛片久久看| 亚洲精品视频免费在线观看| 人妻少妇精品无码专区| 自拍偷拍亚洲图片| 国产精品日韩久久久久| 青青视频在线播放| 四虎在线免费视频| 品久久久久久久久久96高清| 人人狠狠综合久久亚洲| 潘金莲激情呻吟欲求不满视频| av在线免费在线观看| 国产欧美一区二区三区沐欲| 国产成人一区在线| 国产又粗又猛又黄又爽无遮挡| 91桃色在线| 久久精品国产亚洲AV无码麻豆| 级毛片内射视频| 日韩人体视频| av影片在线一区| 欧美激情图片区| 成a人片亚洲日本久久| 麻豆视频免费在线观看| 国产在线一区观看| 337p粉嫩大胆色噜噜噜噜亚洲| 久久日一线二线三线suv| 成人免费视频网址| 丁香花在线观看完整版电影| 影音先锋男人资源站| 日韩福利在线播放| 日韩精品视频在线免费观看| 国产日韩欧美综合在线| 日本大胆人体视频| 91传媒免费看| 国产成人免费9x9x人网站视频| 久久青青草综合| 亚洲第一av网站| 国产中文字幕二区| 色综合久久久久久| av综合在线播放| 免费毛片在线| av成人激情| 婷婷av在线| 中文字幕亚洲精品| 牛牛影视精品影视| 女尊高h男高潮呻吟| 国语精品中文字幕| 色噜噜在线观看| 17c国产在线| 国产黄色在线观看| 开心快乐六月丁香婷婷| 999精品在线视频| 国产无套粉嫩白浆内谢| 久热精品视频在线| 日韩免费一级片| 69堂成人精品免费视频| 夜夜嗨av色一区二区不卡| 亚洲狼人综合| 男人影院在线观看| 一本色道**综合亚洲精品蜜桃冫| av色综合久久天堂av色综合在| 免费在线观看a级片| 一本色道久久99精品综合| 少妇与大狼拘作爱性a| 国产精品久久久久影院亚瑟| 欧美成人vr18sexvr| 男人的天堂视频网站| 国产不卡精品在线| 久久精品亚洲精品| 午夜精品久久久久久久99热黄桃| 中国china体内裑精亚洲片| 四虎永久在线高清国产精品| 加勒比色综合久久久久久久久| 快播亚洲色图| 91wwwcom在线观看| 欧美日韩一区在线| 精品毛片一区二区三区| 1769国产精品| 免费在线观看一区二区三区| 在线视频成人| 好看不卡的中文字幕| 一区二区三区免费观看视频| 人人澡人人澡人人看欧美| 极品尤物久久久av免费看| 18成人免费观看视频漫画| 三级精品视频久久久久| 中文字幕第九页| 狠狠色伊人亚洲综合成人| 一区二区三区在线观看免费| 青青草97国产精品免费观看无弹窗版| 在线h片观看| 六月激情综合网| 一区二区三区免费在线观看视频| 久久青草国产手机看片福利盒子| 亚洲欧洲日本韩国| 黄页在线免费看| 国产精品久久久久久av公交车| 看看黄色一级片| 国产精品三区在线观看| 美女100%一区| 欧美国产激情| 日韩精品免费一区二区| 午夜国产欧美理论在线播放| 久久久久久久久久久免费| 欧美三级电影网址| 久久人人爽人人片| 国产原厂视频在线观看| 99热在线只有精品| jizzjizzjizzjizzjizzjizzjizz| 亚洲欧美日韩第一区| 男人添女人下面高潮视频| 冲田杏梨av在线| 中文字幕电影在线观看| av在线播放网| 亚洲乱码日产精品bd| 日本在线播放一区二区三区| 99热亚洲精品| 久久久久久九九九| 综合激情五月婷婷| 欧美一级二级三级九九九| 欧美天堂一区| 深夜国产在线播放| 在线日韩视频| 欧美亚洲尤物久久| 久久三级福利| 艳母动漫在线看| 91干在线观看| 在线免费看av| 亚洲精品一区二区三区香蕉| 青春草免费视频| 亚洲精品国产一区二| 三上悠亚免费在线观看| 色偷偷综合社区| 成人羞羞国产免费网站| 中文字幕一区二区三区色视频| 久久久久久美女| 中文字幕亚洲综合久久五月天色无吗''| 欧美成人三级伦在线观看| 日韩制服丝袜先锋影音| 伊人精品一区| 国内精品国产三级国产在线专| 欧美日韩视频一区二区| 成人午夜精品久久久久久久蜜臀| 热re66久久精品国产99热| 日韩欧美亚洲另类制服综合在线| 久久久精品免费| 蜜桃传媒在线| 国产一二区在线观看| 成年男人的天堂| 中文字幕一区二区免费| 欧美亚洲成人免费| 欧美国产视频在线观看| 国产精品丝袜91| 欧美少妇性生活视频| 有色视频在线观看| 成人资源在线| 久操视频在线| 色网在线免费观看| 五月天综合网站| 精品小视频在线观看| 亚洲网站视频在线观看| 麻豆精品视频在线原创| 高清毛片在线观看| 疯狂揉花蒂控制高潮h| 欧美精品久久久久久久久久丰满| 嫩草香蕉在线91一二三区| 亚洲同志网站入口| 91超碰成人| 91久久奴性调教| 国产一区二区三区在线观看视频| 久久福利视频导航| 伦av综合一区| 97超碰色婷婷| 日本一区二区视频在线观看| 97国产成人无码精品久久久| 亚洲欧美日韩视频一区| 中出在线观看| 欧美精品一卡两卡| www日本黄色| 四虎永久在线观看免费网站网址| 欧美日韩久久一区二区| 欧美另类videos死尸|