Android 获取屏幕的信息和button布局的一些笔记

获取手机屏幕的信息

float density;

density = getResources().getDisplayMetrics().density;

  // 获取屏幕密度(方法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;
	    
	    Log.e(TAG + "  DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
	    Log.e(TAG + "  DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);
	    
	    screenWidth  = dm.widthPixels;		// 屏幕宽(像素,如:480px)
	    screenHeight = dm.heightPixels;		// 屏幕高(像素,如:800px)
	    
	    Log.e(TAG + "  DisplayMetrics(111)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
	    
	    
	    
	    // 获取屏幕密度(方法3)
	    dm = new DisplayMetrics();
	    getWindowManager().getDefaultDisplay().getMetrics(dm);
	    
	    density  = dm.density;		// 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
	    densityDPI = dm.densityDpi;		// 屏幕密度(每寸像素:120/160/240/320)
	    xdpi = dm.xdpi;			
	    ydpi = dm.ydpi;
	    
	    Log.e(TAG + "  DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
	    Log.e(TAG + "  DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);
	    
	    int screenWidthDip = dm.widthPixels;		// 屏幕宽(dip,如:320dip)
	    int screenHeightDip = dm.heightPixels;		// 屏幕宽(dip,如:533dip)

	    Log.e(TAG + "  DisplayMetrics(222)", "screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip);
	    
	    screenWidth  = (int)(dm.widthPixels * density + 0.5f);		// 屏幕宽(px,如:480px)
	    screenHeight = (int)(dm.heightPixels * density + 0.5f);		// 屏幕高(px,如:800px)
	    
	    Log.e(TAG + "  DisplayMetrics(222)", "screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);


Button

是否觉得默认的宽度太大?
	  	        android:layout_width="wrap_content"
	  	        android:layout_height="wrap_content"
可以加上这个属性:
android:minHeight="40dp"

Java代码动态生成的话不太管用,还不知道原因:
button2.setMinHeight(40);
button2.setMinimumHeight((int) (40*density));


怎么使用Java 代码 给Button 设置Margin ?

 LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
		  llp.setMargins(10, 5, 10, 0); // llp.setMargins(left, top, right, bottom);
		  button2.setLayoutParams(llp);    


Java 代码中 在LinearLayout 中怎么设置Button的长和宽. 效果不好,不建议 

ViewGroup.LayoutParams b1param=new ViewGroup.LayoutParams(w,h);
		
		b1param.height = h;
		b1param.width =  w;


怎么让Button获取焦点

button2.setFocusable(true);//(只加这个没有用,同样无法获得焦点)
button2.setFocusableInTouchMode(true);//(这个必须加,获得焦点和TouchMode有关)




你可能感兴趣的:(Android 获取屏幕的信息和button布局的一些笔记)