判断可用的intent和更改Drawable的透明度
public static boolean isIntentAvailable(Context context, String action) {
? ? final PackageManager packageManager = context.getPackageManager();
? ? final Intent intent = new Intent(action);
? ? List<ResolveInfo> list =
? ? ? ? ? ? packageManager.queryIntentActivities(intent,
? ? ? ? ? ? ? ? ? ? PackageManager.MATCH_DEFAULT_ONLY);
? ? return list.size() > 0;
}
使用如下:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
? ? final boolean scanAvailable = isIntentAvailable(this,
? ? ? ? "com.google.zxing.client.android.SCAN");
? ? MenuItem item;
? ? item = menu.findItem(R.id.menu_item_add);
? ? item.setEnabled(scanAvailable);
? ? return super.onPrepareOptionsMenu(menu);
}
2.
Drawable star = context.getResources().getDrawable(R.drawable.star);
if (book.isFavorite()) {
? star.mutate().setAlpha(255); // opaque
} else {
? star. mutate().setAlpha(70); // translucent
}