鍍金池/ 問(wèn)答/Android  HTML/ 在安卓音樂(lè)播放器中標(biāo)記已聽(tīng)過(guò)的歌曲

在安卓音樂(lè)播放器中標(biāo)記已聽(tīng)過(guò)的歌曲

想給一個(gè)網(wǎng)絡(luò)音樂(lè)播放器加上一個(gè)功能,就是用戶(hù)聽(tīng)完了一首歌以后,歌曲的標(biāo)題會(huì)自動(dòng)由黑色變成灰色,請(qǐng)問(wèn)該如何實(shí)現(xiàn)?

原始代碼如下:

    static View setupListView(Activity activity, View convertView, ViewGroup parent,
                              MediaBrowserCompat.MediaItem item) {
        if (sColorStateNotPlaying == null || sColorStatePlaying == null) {
            initializeColorStateLists(activity);
        }

        MediaItemViewHolder holder;

        Integer cachedState = STATE_INVALID;

        if (convertView == null) {
            convertView = LayoutInflater.from(activity)
                    .inflate(R.layout.media_list_item, parent, false);
            holder = new MediaItemViewHolder();
            holder.mImageView = (ImageView) convertView.findViewById(R.id.play_eq);
            holder.mTitleView = (TextView) convertView.findViewById(R.id.title);
            holder.mDescriptionView = (TextView) convertView.findViewById(R.id.description);
            convertView.setTag(holder);
        } else {
            holder = (MediaItemViewHolder) convertView.getTag();
            cachedState = (Integer) convertView.getTag(R.id.tag_mediaitem_state_cache);
        }


        MediaDescriptionCompat description = item.getDescription();
        holder.mTitleView.setText(description.getTitle());
        holder.mDescriptionView.setText(description.getSubtitle());

        // If the state of convertView is different, we need to adapt the view to the
        // new state.
        int state = getMediaItemState(activity, item);
        if (cachedState == null || cachedState != state) {
            Drawable drawable = getDrawableByState(activity, state);
            if (drawable != null) {
                holder.mImageView.setImageDrawable(drawable);
                holder.mImageView.setVisibility(View.VISIBLE);
            } else {
                holder.mImageView.setVisibility(View.GONE);
            }
            convertView.setTag(R.id.tag_mediaitem_state_cache, state);
        }



        return convertView;
    }
回答
編輯回答
卟乖

你可以把已播放歌曲列表緩存在本地。然后寫(xiě)一個(gè)監(jiān)聽(tīng)本地緩存列表,更新數(shù)據(jù)到前臺(tái)。

2018年5月24日 12:45