无法在ImageView中显示图像

时间:2018-05-29 04:12:40

标签: android kotlin

我遇到问题,我从存储中加载图像(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)

1 个答案:

答案 0 :(得分:2)

实际上,由于图像视图未加载图像,因此图像尺寸过大。

更好的方法是使用picassoGlideUniversal image loader这样的库,这样可以完美地加载图像,否则会调整位图的大小。