我需要使用应用程序的程序包名称为按钮分配图像。该按钮位于远程视图上,即该按钮位于小部件上。请对此提供帮助。
Button myButton = (Button)a.findViewById(R.id.button);
PackageManager packageManager=a.getPackageManager();
ApplicationInfo app = a.getPackageManager().getApplicationInfo("com.whatsapp", 0);
Drawable icon;
icon = packageManager.getApplicationIcon(app);
if(icon!=null)
{
myButton.setBackgroundResorce(icon);
}
}
catch (NameNotFoundException e) {
Toast toast = Toast.makeText(a.getApplicationContext(), "error in getting icon", Toast.LENGTH_SHORT);
toast.show();
e.printStackTrace();
}
上面是我编写的代码,用于使用包名称获取应用程序的图像并将其分配给button.Now可以在纯xml上正常工作,我需要对小部件上的按钮执行相同的操作。
你应该用
myButton.setBackgroundDrawable(icon);
setBackgroundResorce(); 用于包装中的资源
编辑1:
public void setIcontoButton(Button targetButton, Drawable icon)
{
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
targetButton.setBackgroundDrawable(icon)
} else {
targetButton.setBackground(icon);
}
}
并将代码更改为:
setIcontoButton(myButton,icon);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句