Android屏幕分辨率,尺寸获取问题

来源:互联网 发布:淘宝上的艾滋试纸 编辑:程序博客网 时间:2024/05/16 12:31

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);     } } 

原创粉丝点击