判断可用的intent和更改Drawable的透明度

来源:互联网 发布:服务器端软件有哪些 编辑:程序博客网 时间:2024/06/07 02:46

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
}

原创粉丝点击