您的位置:首页 > 移动开发 > Android开发

Android 适配的一些总结

2015-08-31 16:34 316 查看
Android设备需要做适配,道理很简单。

1. Android开源,手机设备厂商众多标准很难统一。现状是Android设备各种屏,碎片化严重。

2. 如果不做适配,要么你的Android程序需求已经对设备进行了强制要求,要么就是你不想所有用户好好跑你程序。

3. 废话不多说了,怎么做呢?我看来有两种途径,一种是简单粗暴的获取设备长和宽,按照百分比设置控件的大小和间距,百度了一阵感觉没什么人介绍,可能是太简单了吧。另一种就是各种博客各种介绍的根据分辨率,像素,像素密度,图片分辨率大小综合上述因素再根据Android提供的适配方案,来进行Android设备的适配。

如何选择哪种方案,当只有一种分辨率的图片资源时,又没有一个得力的美工,或者处理图片的耐心,建议使用第一种方案。第二种方案实现网上教程很多,再此处不再赘述,想学习使用第二种方案的推荐看。屏幕适配全攻略。因为第一种方案我没百度到所以写下来。

首先,获取当前屏幕的宽度,高度。

DisplayMetrics dm=new DisplayMetrics();
dm=getResources().getDisplayMetrics();
int screenHeight=dm.heightPixels;
int screenWidth=dm.widthPixels;
setViewWidthAndHeight(questionBordPager, (int)(screenWIdth*0.5), (int)(screenHeight*0.21));


其次,设置View的长宽

public void setViewWidthAndHeight(View view,int Width,int height){
ViewGroup.LayoutParams params=view.getLayoutParams();
params.width=width;
params.height=height;
view.setLayoutParams(params);
}


最后,设置控件间隔

public void setMarginTop(View view,int top)
{
ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
params.setMargins(0, top, 0, 0);
view.setLayoutParams(params);
}
public void setMarginRight(View view,int right)
{
ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
params.setMargins(0, 0, right, 0);
view.setLayoutParams(params);
}
public void setMarginLeft(View view,int left)
{
ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
params.setMargins(left, 0, 0, 0);
view.setLayoutParams(params);
}
public void setMarginLeftAndTop(View view,int left,int top)
{
ViewGroup.MarginLayoutParams params=(MarginLayoutParams) view.getLayoutParams();
params.setMargins(left, top, 0, 0);
view.setLayoutParams(params);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: