获取手机屏幕的信息
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有关)