我遇到问题,我从存储中加载图像(4128x3096),我想在屏幕上显示它。
但是在跑完之后,我的屏幕是空白的(屏幕白色)
但是当我加载另一张图像(1080x720)时,它可以工作并在屏幕上显示图像
现在,我想要在屏幕上显示并填充图像(4128x3096)
怎么做?
这是我的代码:
val bitmap = BitmapFactory.decodeFile(patchFile)
val matrix = Matrix()
matrix.postRotate(90F)
val newBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.width, bitmap.height, matrix, true)
imageView.setImageBitmap(newBitmap)
logcat的:
05-29 11:27:47.194 32471-32507/com.example.minhduc.aicam W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3096x4128, max=4096x4096)
Bitmap too large to be uploaded into a texture (3096x4128, max=4096x4096)
05-29 11:27:48.970 32471-32493/com.example.minhduc.aicam W/MessageQueue: Handler (android.widget.Toast$TN$2) {a8d7afe} sending message to a Handler on a dead thread
java.lang.IllegalStateException: Handler (android.widget.Toast$TN$2) {a8d7afe} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:543)
at android.os.Handler.enqueueMessage(Handler.java:643)
at android.os.Handler.sendMessageAtTime(Handler.java:612)
at android.os.Handler.sendMessageDelayed(Handler.java:582)
at android.os.Handler.sendMessage(Handler.java:519)
at android.os.Message.sendToTarget(Message.java:416)
at android.widget.Toast$TN.hide(Toast.java:414)
at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:57)
at android.os.Binder.execTransact(Binder.java:565)
答案 0 :(得分:2)
实际上,由于图像视图未加载图像,因此图像尺寸过大。
更好的方法是使用picasso
,Glide
或Universal image loader
这样的库,这样可以完美地加载图像,否则会调整位图的大小。