android实用代码片段(三)
2015-03-30 18:46
411 查看
android实用代码片段(三)
ListView使用ViewHolder极简写法
SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Integers to Objects.SparseArrays 类以integer对应Object,不像普通的对象数列,在索引间SparseArrays中可以间隙。SparseArrays相对于Integer对应对Object的哈希表更加高效。
此代码用SparseArray中得id与view的对应关系,代替了新建一个ViewHolder对象的方法。
public static <T extends View> T getAdapterView(View convertView, int id) { SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag(); if (viewHolder == null) { viewHolder = new SparseArray<View>(); convertView.setTag(viewHolder); } View childView = viewHolder.get(id); if (childView == null) { childView = convertView.findViewById(id); viewHolder.put(id, childView); } return (T) childView; }
@Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_feed_item, parent, false); } ImageView thumnailView = getAdapterView(convertView, R.id.video_thumbnail); ImageView avatarView = getAdapterView(convertView, R.id.user_avatar); ImageView appIconView = getAdapterView(convertView, R.id.app_icon); }
设置Activity透明
用途:用于模拟Dialog效果,比如在Service中没法用Dialog,就可以用Activity来模拟<style name="TransparentActivity" parent="AppBaseTheme"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> </style>
代码切换全屏
//切换到全屏 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //切换到非全屏 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
调用开发者选项中显示触摸位置功能
android.provider.Settings.System.putInt(getContentResolver(), "show_touches", 1);
获取设备上已安装并且可启动的应用列表
使用getInstalledApplications会返回很多无法启动甚至没有图标的系统应用ResolveInfo.activityInfo.applicationInfo也能取到想要的数据。public List<ResolveInfo> getLauncherApp(){ Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, 0); return activities; }
相关文章推荐
- android上的实用代码片段
- Android实用代码片段整合
- Android开发实用代码片段(一)
- android开发实用代码片段
- Android 实用代码片段
- 转--Android实用的代码片段 常用代码总结
- android 实用代码片段
- android实用代码片段
- Android实用代码片段整合
- 实用的Android代码片段集合(精)
- Android实用代码片段整合
- Android_开发者实用代码片段 收集
- android实用代码片段(四)
- Android 实用代码片段
- Android 实用代码片段
- Android实用代码片段整合
- [代码片段] Android实用代码片段整合
- android实用代码片段(一)
- Android实用代码片段
- Android实用代码片段整合