我需要使用应用程序的包名称将图像分配给按钮。按钮位于远程视图上,即按钮位于窗口小部件上。请帮助我。
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上运行正常。我需要对widget上的按钮执行相同的操作。 / p>
答案 0 :(得分:1)
你应该使用
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);