Android开发之Glide加载U盘音乐的专辑图片的方法 | Glide加载content:图片 | Glide加载内容提供者 | Glide加载MP3专辑图片 | Glide加载音乐专辑图片
老套路先(献)上图
1.说下核心,Glide提供了直接加载内容提供者的方法用于显示图片
2.Glide加载的图片的格式如下
content://com.yhsh.app.media.server.usb.media.music?filePath=/storage/F299-6882/IU,太妍 - 기다리다 (合成版).mp3"
问号前面标识的是播放U盘音乐APP的provider配置的android:authorities
<providerandroid:process="@string/usb_music_server_process_name"android:name="com.yhsh.app.media.server.usbmusic.provider.MusicMediaProvider"android:authorities="com.yhsh.app.media.server.usb.media.music"android:exported="true" />
问号后面标识mp3文件的全路径
然后就是上代码了
生成content: 路径的方法
private static final String AUTHORITY_MUSIC = "com.yhsh.app.media.server.usb.media.music";private static final Uri AUTHORITY_URI_MUSIC = Uri.parse("content://" + AUTHORITY_MUSIC);private static final String KEY_FILE_PATH = "filePath";/*** 根据mediaId获取usb音乐的封面地址.** @param mediaId usb音乐的路径.* @return 获取封面的地址.*/public String getMusicThumbnailPath(String mediaId) {//从数据库查询.Uri.Builder builder = AUTHORITY_URI_MUSIC.buildUpon();builder.appendQueryParameter(KEY_FILE_PATH, mediaId);Uri thumbUri = builder.build();return thumbUri.toString();}
加载U盘mp3文件的专辑图片的方法
public void loadImage(Context mContext, String thumbnailPath) {Glide.with(mContext).asBitmap().load(thumbnailPath).into(new CustomTarget<Bitmap>() {@Overridepublic void onResourceReady(@NotNull Bitmap resource, Transition<? super Bitmap> transition) {Log.d(TAG, "load image success -> " + resource);BitMap bt = resource;//自己设置bitmap即可}@Overridepublic void onLoadCleared(Drawable placeholder) {Log.d(TAG, "load image cleared");}@Overridepublic void onLoadFailed(@Nullable Drawable errorDrawable) {Log.i(TAG, "load image fail -> , onLoadFailed");//加载失败后自己设置默认图即可}});}
好了,我们再来看下完整代码
package com.yhsh.app.remoteview.util;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.Log;import androidx.annotation.Nullable;import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;import org.jetbrains.annotations.NotNull;/*** @author xiayiye5* @date 2022/5/11 21:12* 用于加载U盘音乐专辑图片的工具类*/
public class LoadMusicImageUtils {/*** Glide.with(mContext).asBitmap().load("content://com.yhsh.app.media.server.usb.media.music?filePath=/storage/F299-6882/IU,太妍 - 기다리다 (合成版).mp3")*/private static final String AUTHORITY_MUSIC = "com.yhsh.app.media.server.usb.media.music";private static final Uri AUTHORITY_URI_MUSIC = Uri.parse("content://" + AUTHORITY_MUSIC);private static final String KEY_FILE_PATH = "filePath";private static final String TAG = "LoadMusicImageUtils";private LoadMusicImageUtils() {}private static final LoadMusicImageUtils LOAD_MUSIC_IMAGE_UTILS = new LoadMusicImageUtils();public static LoadMusicImageUtils getInstance() {return LOAD_MUSIC_IMAGE_UTILS;}/*** 加载U盘音乐专辑图片的方法** @param mContext 上下文* @param thumbnailPath 图片path*/public void loadImage(Context mContext, String thumbnailPath) {Glide.with(mContext).asBitmap().load(thumbnailPath).into(new CustomTarget<Bitmap>() {@Overridepublic void onResourceReady(@NotNull Bitmap resource, Transition<? super Bitmap> transition) {Log.d(TAG, "load image success -> " + resource);BitMap bt = resource;//自己设置bitmap即可}@Overridepublic void onLoadCleared(Drawable placeholder) {Log.d(TAG, "load image cleared");}@Overridepublic void onLoadFailed(@Nullable Drawable errorDrawable) {Log.i(TAG, "load image fail -> , onLoadFailed");}});}/*** 根据mediaId获取usb音乐的封面地址.** @param mediaId usb音乐的路径.* @return 获取封面的地址.*/public String getMusicThumbnailPath(String mediaId) {//从数据库查询.Uri.Builder builder = AUTHORITY_URI_MUSIC.buildUpon();builder.appendQueryParameter(KEY_FILE_PATH, mediaId);Uri thumbUri = builder.build();return thumbUri.toString();}
}
Android开发之Glide加载U盘音乐的专辑图片的方法 | Glide加载content:图片 | Glide加载内容提供者 | Glide加载MP3专辑图片 | Glide加载音乐专辑图片相关推荐
- Android开发之listview添加头布局(header)和脚布局(footer)的方法
我们先说下添加的方法 方法一:正常添加lvCouponList.addHeaderView(headerView);lvCouponList.addFooterView(footerView); 方法 ...
- android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...
在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...
- Android开发之QQ空间效果(QQ空间下拉图片放大,松手后回弹)
Android开发之QQ空间效果(QQ空间下拉图片放大,松手后回弹) 腾讯QQ空间的下拉图片放大,松手后回弹的效果带来的视觉差异效果让许多移动开发者心动不已,经本人一段时间的研究,终于实现了该视差效果 ...
- android 图库分析,Android开发之ImageSwitcher相册功能实例分析
本文实例讲述了Android开发之ImageSwitcher相册功能.分享给大家供大家参考,具体如下: 简介: 1.ImageSwitcher是viewSwitcher的子类,所以ImageSwitc ...
- android之json解析优化,Android开发之json解析
目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...
- Android 开发之旅:深入分析布局文件又是“Hello World!”
引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实践,我们拿起手术刀对默认的"Hello World!"程序进行了3个手术,我们清楚了"Hell ...
- android中oncreate方法,android开发之onCreate( )方法详解
这里我们只关注一句话:This is where you should do all of your normal static set up.其中我们只关注normal static, normal ...
- Android开发之ViewFlipper
Android开发之ViewFlipper /* * Android开发之ViewFlipper * 北京Android俱乐部群:167839253 * Created on: 2012-7-25 ...
- android开发之onCreate( )方法详解
android开发之onCreate( )方法详解 onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Go ...
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
最新文章
- python 利用多进程实现文件的拷贝
- PhotoFiltre Studio X中文版
- 解决Extjs中textarea不支持keyup事件的问题
- spring的Aop使用问题
- ethernet调试工具_开发者分享 | 如何调试10G/25G以太网IP自协商/Link Training
- 蓝桥杯 ADV-202 算法提高 最长公共子序列
- Android开发之引用framework.jar中的方法 | 引用framework.jar包
- numpy 辨异(三)—— hstack/column_stack,linalg.eig/linalg.eigh
- 阿里云服务器端口请求失败(在控制台把端口添加到服务器的安全组)
- Gephi绘制网络图初步探索
- 淘淘商城系列——VMware添加已配置好的虚拟机
- uat测试和sit测试_测试三角形,金字塔和圆形以及UAT
- 【航拍中国第二季】甘肃笔记
- MP3歌词的同步与拖拽设计
- fopen 参数'rb' 与'rb+'引发的黑色血案
- inet_addr,inet_pton,inet_aton 用法
- 广义表的定义,特性,及表头和表尾怎么看?
- 美工页面怎么排版?排版设计需要注意什么要点?
- 用python 实现发射爱心
- (74)项目中的亮点是什么?