技术转载:Android开发之常用代码片段
16lz
2021-01-25
1、设置窗口格式为半透明
2、 Android中在非UI线程里更新View的不同方法:
3、全屏显示窗口
4、取得屏幕大小
5、调浏览器 载入网址
6、取得内存大小
7、监听App安装/卸载事件
8、取得IP地址
9、ListView 后面adapter数据已更改,但是ListView没有收到Notification 首先,必须将 更新adapter数据的代码放在:Handler.post(Runnable)方法中执行; 然后,如果Adapter数据的来源如果是cursor(CursorAdapter)的话 可以cursor.requery一下,如果是别的可以强制调用一下notifyChange, notifyChange 会调用 invalidate 进行重绘; 10、模拟HOME键
11、设置焦点
getWindow().setFormat(PixelFormat.TRANSLUCENT);
2、 Android中在非UI线程里更新View的不同方法:
* Activity.runOnUiThread( Runnable )* View.post( Runnable )* View.postDelayed( Runnable, long )* Hanlder
3、全屏显示窗口
requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
4、取得屏幕大小
方法A:WindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();hAndW[0] = display.getWidth();hAndW[1] = display.getHeight();方法B:DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);hAndW[0] = dm.widthPixels;hAndW[1] = dm.heightPixels;
5、调浏览器 载入网址
Uri uri = Uri.parse("http://www.google.com");Intent it = new Intent(Intent.ACTION_VIEW, uri);startActivity(it);
6、取得内存大小
ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo();activityManager.getMemoryInfo(outInfo);//可用内存outInfo.availMem//是否在低内存状态outInfo.lowMemory取得ScrollView的实际高度scrollview.getHeight()scrollview.getMeasuredHeight()scrollview.compute()scrollview.getLayoutParams().height
7、监听App安装/卸载事件
A.Define a class derived from class BroadcastReceiver;B.Register broadcast receiver;MyBroadcastReceiver myReceiver = new MyBroadcastReceiver();IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_INSTALL);filter.addAction(Intent.ACTION_PACKAGE_REMOVED);filter.addAction(Intent.ACTION_PACKAGE_ADDED);filter.addAction(Intent.ACTION_PACKAGE_CHANGED);filter.addAction(Intent.ACTION_PACKAGE_RESTARTED);...filter.addDataScheme("package"); //This line is very important. Otherwise, broadcast can't be received.registerReceiver(myReceiver, filter);Notes: The package name is Intent.mData. Intent.mData is not available in SDK 1.0, but it can be retrieved by calling Intent.getDataString();
8、取得IP地址
A.//Connect via WIFI 通过wifiWifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();int ipAddress = wifiInfo.getIpAddress();B.//Connect via GPRS通过gprspublic String getLocalIpAddress(){try{for(Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();){NetworkInterface intf = en.nextElement();for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();){InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()){return inetAddress.getHostAddress().toString();}}}}catch (SocketException ex){Log.e(S.TAG, ex.toString());}return null;}
9、ListView 后面adapter数据已更改,但是ListView没有收到Notification 首先,必须将 更新adapter数据的代码放在:Handler.post(Runnable)方法中执行; 然后,如果Adapter数据的来源如果是cursor(CursorAdapter)的话 可以cursor.requery一下,如果是别的可以强制调用一下notifyChange, notifyChange 会调用 invalidate 进行重绘; 10、模拟HOME键
Intent i=new Intent(Intent.ACTION_MAIN);i.addCategory(Intent.CATEGORY_HOME);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);
11、设置焦点
editText.setFocusable(true);editText.requestFocus();editText.setFocusableInTouchMode(true);
12、MediaPalyer和SurfaceView播放视频设置surfaceview
//设置SurfaceView自己不管理的缓冲区surfaceView.getHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//设置播放时打开屏幕surfaceView.getHolder.setKeepScreenOn(true)
13、判断SD卡是否存在
if(!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){}
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android(安卓)Intent的几个主要用法--发短信,打电话,发彩信
- Android(安卓)OpenGL——GL10方法介绍
- 书评:使用Android(安卓)SDK构建应用,第2版
- Android(安卓)Jetpack之Paging初探
- Android(安卓)动画总结-帧动画
- 获取Android系统中全部正在运行的程序