更改 remoteView 按钮的背景图像?
Changing a background image of a remoteView button?
不太明白这一点。我的 Activity 上有一个按钮,按下后会打开一个通知。这个自定义通知上面有一个按钮。我正在尝试在按下后更改通知背景图片。
这是我到目前为止使用的方法,但没有成功。
这是一项服务 class,一旦按下 "notifcation_Button" 就会被调用。 (我有一个挂起的意图,称之为 class)
public class newService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("newService", "Newservice");
RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.custom_layout); //this is my custom notification
remoteView.setInt(R.id.StartButton_Notification, "setBackgroundColor", R.drawable.sungrey);
remoteView.setInt(R.id.StartButton_Notification, "setBackgroundResource", sungrey);
remoteView.setImageViewResource(R.id.StartButton_Notification, R.drawable.sungrey);
return START_NOT_STICKY;
}
我认为在 custom_layout.xml 文件中你可以给父视图一个 ID。在您的代码中使用其 id 获取对该父视图的引用,并更改该视图的背景图像以获得所需的结果。
所以任何想知道的问题是 NotificationCompat.Builder 没有被更新,所以你最初拥有它的地方,它需要用 remoteView.setInt(R.id.yourDrawable, "setBackgroundResource", newDrawable);.要么将它扔到一个方法中并以这种方式更新它,要么将整个傻瓜带入发生变化的class。
不太明白这一点。我的 Activity 上有一个按钮,按下后会打开一个通知。这个自定义通知上面有一个按钮。我正在尝试在按下后更改通知背景图片。
这是我到目前为止使用的方法,但没有成功。
这是一项服务 class,一旦按下 "notifcation_Button" 就会被调用。 (我有一个挂起的意图,称之为 class)
public class newService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("newService", "Newservice");
RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.custom_layout); //this is my custom notification
remoteView.setInt(R.id.StartButton_Notification, "setBackgroundColor", R.drawable.sungrey);
remoteView.setInt(R.id.StartButton_Notification, "setBackgroundResource", sungrey);
remoteView.setImageViewResource(R.id.StartButton_Notification, R.drawable.sungrey);
return START_NOT_STICKY;
}
我认为在 custom_layout.xml 文件中你可以给父视图一个 ID。在您的代码中使用其 id 获取对该父视图的引用,并更改该视图的背景图像以获得所需的结果。
所以任何想知道的问题是 NotificationCompat.Builder 没有被更新,所以你最初拥有它的地方,它需要用 remoteView.setInt(R.id.yourDrawable, "setBackgroundResource", newDrawable);.要么将它扔到一个方法中并以这种方式更新它,要么将整个傻瓜带入发生变化的class。