————获取屏幕高宽————
- // 获取状态栏高度
- Rect frames = new Rect();
- MainTwoActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(frames);
- int statusBarHeights = frames.top;
- //获取标题栏高度
- int titleHeights = frames.height() - View.getheight();
- //获得屏幕高宽
- int heights = MainTwoActivity.this.getWindowManager().getDefaultDisplay().getHeight();
- int widths = MainTwoActivity.this.getWindowManager().getDefaultDisplay().getWidth();
- //正确获取手机屏幕的分辨率和密度
- DisplayMetrics dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- int widthPixels= dm.widthPixels;
- int heightPixels= dm.heightPixels;
- float density = dm.density;
- int screenWidth = widthPixels * density ;
- int screenHeight = heightPixels * density ;
320*480的手机上得到的widthPixels值是320,heightPixels值是480,density的值是1.0。
在480*800的手机上的到的widthPixels值是320,heightPixels值是533,density的值是1.5。
注意: 此处DisplayMetrics不要使用context.getApplicationContext().getResources().getDisplayMetrics()来获取。
————关于inflate的使用————
- View view=View.inflate(this,R.layout.dialog_layout,null);
- TextViewdialog TV=(TextView)view.findViewById(R.id.dialog_tv);
————后台动态生成控件————
- //第一是容器,创建一个容器(这里用LinearLayout举例);
- LinearLayout lLayout = new LinearLayout(MainActivity.this);//(这里的this是一个Context变量);
- //第二是容器的细节,也就是属性部分;比如,容器里的控件是怎样排的;
- lLayout.setOrientation(LinearLayout.VERTICAL);
- //第三是容器里的控件,创建自己想要的控件;比如,
- EditText editText = new EditText(MainActivity.this);
- Button button = new Button(MainActivity.this);//这里的this都是一个Context变量;
- //第四是容器的细节,就是设置容器的属性;
- editText.setLines(3);
- editText.setGravity(Gravity.TOP|Gravity.LEFT);
- button.setText("插入随机表情");
- //第五是将控件加入到容器当中去;
- LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- lParams.setMargins(0,0,0,0);//设置margin属性
- RelativeLayout.LayoutParams rParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
- rParams.addRule(RelativeLayout.CENTER_HORIZONTAL);//设置RelativeLayout控件下android:layout_centerHorizontal 属性
- rParams.addRule(RelativeLayout.BELOW, tvtime.getId()); //设置RelativeLayout控件下android:layout_below 属性
- rParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); //设置RelativeLayout控件下android:layout_alignParentLeft 属性
- rParams1.addRule(RelativeLayout.LEFT_OF,tv.getId()); //设置RelativeLayout控件下android:layout_toRightOf 属性
- lLayout.addView(editText, lParams);
- lLayout.addView(button, lParams);
- //第六是将容器将加入ContentView中;
- setContentView(lLayout);
————判断是否连接网络————
- /**
- * 检查网络连接
- * @param context
- * @return
- */
- public static boolean isNetworkAvailable(Context context) {
- ConnectivityManager connectivity = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivity != null) {
- NetworkInfo[] info = connectivity.getAllNetworkInfo();
- if (info != null) {
- for (int i = 0; i < info.length; i++) {
- if (info[i].getState() == NetworkInfo.State.CONNECTED) {
- return true;
- }
- }
- }
- }
- return false;
- }
加上相应的权限:
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
————判断只可以输入数字————
1、
android:digits属性:设置允许输入哪些字符。
假如只可以输入0到9的数字字符,设置为:android:digits ="1234567890"
2、
Integer.parseInt() 抛出的Exception来判断:
- try
- {
- Integer.parseInt(string);
- }
- catch
- {
- //发生了异常,那么就不是数字了。
- }
3、用正则表达式
- if(str.matches("^[0-9]")){
- //不是数字
- }else{