通过反射实现Menu显示图标
@Override
public boolean onCreateOptionsMenu(Menu menu) {
setIconEnable(menu, true);
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
} /**
* 通过反射实现Menu显示图标
*
* @param menu
* @param enable
*/
private void setIconEnable(Menu menu, boolean enable) {
try {
Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class);
m.setAccessible(true);
//下面传入参数
m.invoke(menu, enable); } catch (Exception e) {
e.printStackTrace();
}
}
截取屏幕,获得Bitmap
/**
* 截取整个屏幕
*
* @return
*/
private Bitmap generateWishCard() {
View view = getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
return view.getDrawingCache();
}
从系统图库选择图片
//选择图片
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();
}