android - 在远程 View 通知中更改 Imageview 资源

标签 android notifications remoteview

我正在使用按钮和 TextView 在服务类内显示音乐播放器的通知。每当歌曲发生变化时,文本都会更新,但我需要在单击播放按钮时更改 ImageViewResource,一旦音乐停止,它应该更改为暂停。 我面临的另一个问题是,当 textview 文本更改时,整个通知 View 刷新 1 秒,然后仅文本更改。我怎样才能停止整个 View 的刷新?这是我到目前为止尝试过的代码:

服务等级:

  @Override
public int onStartCommand(Intent intent,int flags,int startId)
{
    if(intent!=null)
    {
        String action = intent.getAction();
        if(!TextUtils.isEmpty(action))
        {
        if(action.equals(ACTION_PAUSE))
        {
            remoteView.setImageViewResource(R.id.btnPlay_notif,R.drawable.btn_pause); //changing imageview frm play to pause
            AppWidgetManager manager = AppWidgetManager.getInstance(getApplicationContext());
            manager.updateAppWidget(R.id.btnPlay_notif, remoteView); // is the app widget id given correct?
            pausePlayer();
        }}
return 1;
}

 @Override
public void onPrepared(MediaPlayer mp) {
     mp.start;
    Context context = getApplicationContext();
    remoteView = new RemoteViews(context.getPackageName(),
            R.layout.notification);

    remoteView.setTextViewText(R.id.tv_song_title_notif, songTitle);
}

最佳答案

必须通过remoteView访问ImageView View 并设置图像资源/位图。如果您之前需要下载图像,可以使用Universal Image Loader之类的库从URL中获取位图。

remoteView.setImageViewResource(R.id.yourImageView, R.drawable.yourResource);
        nManager.notify(NOTIFICATION_PANEL_ID, notification);

或者

    imageLoader.loadImage(imageUrl, options, new ImageLoadingListener() {

        @Override
        public void onLoadingStarted(String arg0, View arg1) {
        }

        @Override
        public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
        }

        @Override
        public void onLoadingComplete(String text, View view, Bitmap bitmap) {
            remoteView.setImageViewBitmap(R.id.yourImageView, bitmap);
            nManager.notify(NOTIFICATION_PANEL_ID, notification);
        }

        @Override
        public void onLoadingCancelled(String arg0, View arg1) {
        }
    });

关于android - 在远程 View 通知中更改 Imageview 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999192/

相关文章:

Android:通知中 bigContentView 周围的间距

java - 从远程 View 更改 Activity 切换的 boolean 值?

android - Android 中的通知构建检查

ruby-on-rails - 当客户在 ruby​​ on rails 电子商务应用程序中下订单时收到通知

java - 如何从 ArrayList 中获取相等或接近相等数量的具有不同字段值的对象

java - 带有 API 23 (Marshmallow) 的 Android SDK 是否支持 Java 8?

ruby-on-rails - 如何在 Rails 中实现气泡通知?

android - 获取 android.app.RemoteServiceException : Bad notification posted from package in custom notification

android - 为什么 JodaTime 时区会改变日期时间?

java - 当 2 个条件为 true 时从 JSON 获取值