Android屏幕分辨率,尺寸获取问题
2013-06-25 14:05
411 查看
Android手机生产商很多,又没有硬性规定,所以android手机尺寸很多,分辨率也有很多种。因此一种应用要做到,在各个不同屏幕大小的手机上都能正常布局应用,不影响用户使用。网上有很多方法,总结一下:
一.下面的方法是获得控件的大小
利用getLayoutParams()方法和setLayoutParams()方法。
三步曲:
1、首先利用getLayoutParams()方法,
获取控件的LayoutParams LayoutParams laParams=(LayoutParams)imageView.getLayoutParams();
2、设置该控件的layoutParams参数 laParams.height=200; laParams.width=100;
3、将修改好的layoutParams设置为该控件的layoutParams. imageView.setLayoutParams(laParams);
二.获得屏幕的大小 在真机上面获取分辨率的话为:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Int nowWidth = dm.widthPixels; //当前屏幕像素
int nowHeigth = dm.heightPixels; //当前屏幕像素
Int density=dim.density;//屏幕的密度density
Log.e("密度:",density+"");
int width = (int) (nowWidth * density);
int height = (int) (nowHeigth * density);
Java代码
public class TestShipingActivity extends Activity {
/** Called when the activity is first created. */ private Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button) findViewById(R.id.btn1);
LayoutParams laParams=(LayoutParams) btn.getLayoutParams();
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int nowWidth=dm.widthPixels;//获得控件的原始宽度
int nowheight=dm.heightPixels;//获得控件的原始高度
int density = (int) dm.density;//获得真机的像素密度
//乘以手机的密度是因为每一个手机存在差异,
int width = (int) (nowWidth * density);//获得当前手机的宽度
int height = (int) (nowheight * density);//获得当前手机的高度
laParams.width=(laParams.width*width)/320;//设置新手机上的控件的宽度
laParams.height=(laParams.height*height)/480;//设置新手机上的控件的高度
btn.setLayoutParams(laParams); } }
一.下面的方法是获得控件的大小
利用getLayoutParams()方法和setLayoutParams()方法。
三步曲:
1、首先利用getLayoutParams()方法,
获取控件的LayoutParams LayoutParams laParams=(LayoutParams)imageView.getLayoutParams();
2、设置该控件的layoutParams参数 laParams.height=200; laParams.width=100;
3、将修改好的layoutParams设置为该控件的layoutParams. imageView.setLayoutParams(laParams);
二.获得屏幕的大小 在真机上面获取分辨率的话为:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Int nowWidth = dm.widthPixels; //当前屏幕像素
int nowHeigth = dm.heightPixels; //当前屏幕像素
Int density=dim.density;//屏幕的密度density
Log.e("密度:",density+"");
int width = (int) (nowWidth * density);
int height = (int) (nowHeigth * density);
Java代码
public class TestShipingActivity extends Activity {
/** Called when the activity is first created. */ private Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button) findViewById(R.id.btn1);
LayoutParams laParams=(LayoutParams) btn.getLayoutParams();
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int nowWidth=dm.widthPixels;//获得控件的原始宽度
int nowheight=dm.heightPixels;//获得控件的原始高度
int density = (int) dm.density;//获得真机的像素密度
//乘以手机的密度是因为每一个手机存在差异,
int width = (int) (nowWidth * density);//获得当前手机的宽度
int height = (int) (nowheight * density);//获得当前手机的高度
laParams.width=(laParams.width*width)/320;//设置新手机上的控件的宽度
laParams.height=(laParams.height*height)/480;//设置新手机上的控件的高度
btn.setLayoutParams(laParams); } }
相关文章推荐
- New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题 .
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【分辨率】Android 获取屏幕尺寸与密度
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android如何获取屏幕的尺寸和屏幕的分辨率呢?
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 天天记录 - Android获取屏幕尺寸,分辨率3种方法
- Android 获取屏幕尺寸与密度 遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适。有的同事提出了依据
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- New UI-获取手机屏幕尺寸与分辨率,屏幕适配,横竖屏问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配问题,dip,px,dpi,ppi,sp,density,分辨率,尺寸详细解释及转换
- Android手机获取屏幕分辨率高度因虚拟导航栏带来的问题
- Android屏幕分辨率的获取方法
- android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)
- Android之获取屏幕的尺寸像素及获取状态栏标题栏高度