我正在android.App上编写一个音乐播放器应用程序,它有一个自定义通知,如下所示。
在左边部分,我在歌曲改变时设置了专辑封面。但是当我再次单击下一首歌曲按钮时,我得到了错误的数组异常。
FATAL EXCEPTION: main
java.lang.RuntimeException: bad array lengths
at android.os.Parcel.readIntArray(Parcel.java:677)
设置专辑封面时的代码脚本如下所示。
BitMap bitmap = findBitmap("");
notification.contentView.setImageViewBitmap(R.id.albumImage, bitmap);
notificationManager.notify(NOTIFICATION_ID, notification);
public Bitmap findBitmap(String uriStr) {
Bitmap bitmap = null;
currentUri = songList.get(currentPosition).getAlbumArtUri();
try {
ParcelFileDescriptor pfd = getApplicationContext().getContentResolver()
.openFileDescriptor(currentUri, "r");
if (pfd != null) {
System.out.println("XXX pfd is not null");
FileDescriptor fd = pfd.getFileDescriptor();
Rect r = new Rect();
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fd, r, options);
options.inSampleSize = 1;
options.inJustDecodeBounds = false;
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;
bitmap = BitmapFactory.decodeFileDescriptor(fd, r, options);
}
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;