经过测试发现屏幕的像素点 如果
density =1 那么 1dp = 1px
density =2 那么 1dp = 2px
density =3 那么 1dp = 3px
在字体设置的时候用dp比用px好,因为这样可以防止在不同的分辨率上显示的字体大小不同
textView_bacMsg = (TextView) findViewById(R.id.textView_bacMsg);
bacImg = (ImageView) findViewById(R.id.bacImg);
drawable = new MyProgressDrawable(this);
// 获取屏幕密度(方法2)
DisplayMetrics dm = new DisplayMetrics();
dm = getResources().getDisplayMetrics();
float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
int densityDPI = dm.densityDpi; // 屏幕密度(每寸像素:120/160/240/320)
float xdpi = dm.xdpi;
float ydpi = dm.ydpi;
int screenWidth = dm.widthPixels; // 屏幕宽(像素,如:480px)
int screenHeight = dm.heightPixels; // 屏幕高(像素,如:800px)
RelativeLayout.LayoutParams layoutParams =new RelativeLayout.LayoutParams(-2, -2);
layoutParams.width = screenWidth-200;
layoutParams.height = screenWidth-200;
layoutParams.topMargin = (int) ((screenHeight - 240*density - ( screenWidth-200))/2);
layoutParams.leftMargin = (int) ((screenWidth- ( screenWidth-200))/2);
bacImg.setLayoutParams(layoutParams);
bacImg.setBackgroundDrawable(drawable);
drawable.start();
RelativeLayout.LayoutParams layoutParams_text =(LayoutParams) textView_bacMsg.getLayoutParams();
layoutParams_text.topMargin =(int) ((screenHeight - 240*density - (layoutParams_text.height))/2);
Log.e("中间的字体宽度", layoutParams_text.width+"");
layoutParams_text.leftMargin = (int) ((screenWidth - (20*4*density))/2);
textView_bacMsg.setLayoutParams(layoutParams_text);