首页 > 解决方案 > 如何在 Android 的内置图像选择查看器中添加“按钮”以实现“多图像选择功能”

问题描述

我正在创建将多个选定图像发送到 Web 数据库的 Android 应用程序

我按照https://demonuts.com/select-multiple-images-gallery的教程进行 操作

问题是上面的代码在虚拟模拟器设备上运行良好见下图,其中“2 selected”和“SELECT”显示在虚拟设备上
在此处输入图像描述

但是“2 selected”和“SELECT”的上述部分并未显示在实际手机上,
因此我无法使用以下选定图像返回上一个活动,也无法单击“发送”按钮
在此处输入图像描述

我猜代码使用 Android 的内置图像选择查看器而不是自定义 xml 浏览器,因此我无法弄清楚如何在该 Android 的内置图像选择查看器上添加“按钮”,
也无法弄清楚我应该在哪里添加“如果我可以将按钮添加到 Android 的内置图像选择查看器,则关于该按钮的 onclicklistener"

或者如果有其他方法可以实现相同的“多图像选择算法”,请详细建议,因为我是 Android 开发新手

==================================================== ============================== 编辑:当我点击实际手机上的选择按钮时的错误日志

I/art: Starting a blocking GC Alloc
    Starting a blocking GC Alloc
I/art: Alloc sticky concurrent mark sweep GC freed 4(448B) AllocSpace objects, 0(0B) LOS objects, 7% free, 89MB/96MB, paused 488us total 7.373ms
    Starting a blocking GC Alloc
I/art: Clamp target GC heap from 105MB to 96MB
    Alloc partial concurrent mark sweep GC freed 6(144B) AllocSpace objects, 0(0B) LOS objects, 7% free, 89MB/96MB, paused 511us total 26.117ms
    Starting a blocking GC Alloc
I/art: Clamp target GC heap from 105MB to 96MB
    Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 7% free, 89MB/96MB, paused 542us total 42.448ms
    Forcing collection of SoftReferences for 7MB allocation
I/art: Starting a blocking GC Alloc
I/art: Clamp target GC heap from 105MB to 96MB
    Alloc concurrent mark sweep GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 7% free, 89MB/96MB, paused 533us total 42.342ms
    Starting a blocking GC HomogeneousSpaceCompact
I/art: Clamp target GC heap from 105MB to 96MB
    HomogeneousSpaceCompact marksweep + semispace GC freed 3(72B) AllocSpace objects, 0(0B) LOS objects, 7% free, 89MB/96MB, paused 45.430ms total 45.430ms
W/art: Throwing OutOfMemoryError "Failed to allocate a 7784024 byte allocation with 7276856 free bytes and 6MB until OOM"
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.prototype, PID: 4943
    java.lang.OutOfMemoryError: Failed to allocate a 7784024 byte allocation with 7276856 free bytes and 6MB until OOM
        at java.lang.StringFactory.newStringFromBytes(StringFactory.java:185)
        at java.lang.StringFactory.newStringFromBytes(StringFactory.java:63)
        at android.util.Base64.encodeToString(Base64.java:456)
        at com.example.prototype.UploadMultiplePicturesActivity.imageToString(UploadMultiplePicturesActivity.java:330)
        at com.example.prototype.UploadMultiplePicturesActivity.onActivityResult(UploadMultiplePicturesActivity.java:293)
        at android.app.Activity.dispatchActivityResult(Activity.java:7028)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4217)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4264)
        at android.app.ActivityThread.-wrap20(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6351)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)

标签: androidandroid-intent

解决方案


推荐阅读