通过反射实现Menu显示图标
1 @Override 2 public boolean onCreateOptionsMenu(Menu menu) { 3 setIconEnable(menu, true); 4 getMenuInflater().inflate(R.menu.menu_main, menu); 5 return true; 6 } 7 8 /** 9 * 通过反射实现Menu显示图标 10 * 11 * @param menu 12 * @param enable 13 */ 14 private void setIconEnable(Menu menu, boolean enable) { 15 try { 16 Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder"); 17 Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class); 18 m.setAccessible(true); 19 //下面传入参数 20 m.invoke(menu, enable); 21 22 } catch (Exception e) { 23 e.printStackTrace(); 24 } 25 }
截取屏幕,获得Bitmap
1 /** 2 * 截取整个屏幕 3 * 4 * @return 5 */ 6 private Bitmap generateWishCard() { 7 View view = getWindow().getDecorView(); 8 view.setDrawingCacheEnabled(true); 9 view.buildDrawingCache(); 10 return view.getDrawingCache(); 11 }
从系统图库选择图片
//选择图片 Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(intent, 1); //取得图片 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { if (data != null) { mImagePhoto.setImageURI(data.getData()); } } }
无限轮播,在Adapter中处理
// 为Count设置一个较大的值 @Override public int getCount() { return Integer.MAX_VALUE; } // 在getView中,在根据position取值的时候,根据数据源的大小进行取余操作 int newpos = position; if (position >= listDatas.size()) { newpos = position % listDatas.size(); }