首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

相册适配 Android 11 绕那些弯路

定位问题 首先,我相册Demo把 targetSdk 设置到 30, 然后 Android 10 测试机上运行,发现缩略图完美的显示了出来。...假如你用Glide,会在图中代码位置抛出异常 image.png 三、Android 11 requestLegacyExternalStorage 属性失效 继续翻阅官方文档后,又得知了一个信息...但是,最终还是成功 targetSdk=29 Android 10 手机上成功显示出了缩略图。 3....v=RjyYCUW-9tY&feature=youtu.be image.png 视频对我们有用信息大概是这样, Android 10 时候,很多开发者都反应了类似的问题,使用一些 native...我适配过程也跟了一下 glide 加载缩略图流程,也搞清了一些问题,顺便分享给大家 1. 为什么向 Glidecontent-uri 不会出错,传 file path 会报错?

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

羊皮书APP(Android版)开发系列(二十三)10分钟单例模式实战-Glide图片加载库封装工具类

一篇,我们已经理解了单例模式,本篇我们使用单例模式来封装我们图片加载工具,这个工具好处是:显示图片直接使用这个工具类,后期如果更换图片加载库,我们只需要做少量改动即可完成。...以前使用最多还是Universal Image Loader,我之前APP都是使用它,但是自从有了Glide之后,我APP里面基本都会选择Glide。...图片加载工具类: 这里只给出了几个常用方法,如果需要其他方法,直接在此工具类添加即可。注意工具类单例模式使用是静态内部类形式。...如果大家对Glide使用不了解,直接到github查看Glide。 有了这个图片加载工具类ImageLoader后,显示图片时候,我们只要一行代码就能搞定。...一篇我们理解了单例模式,本篇通过使用单例模式,完成了对图片加载库Glide封装,理解单例模式如何使用同时,也完成了一个图片显示工具。

44750

Android 选择图片、上传图片之Matisse

相比之下,昨天出Android 选择图片、上传图片之PictureSelector就更加友好和人性化了。 下面来说说集成遇到问题以及解决方案。...会报异常 java.lang.NoSuchMethodError: com.bumptech.glide.RequestManager.load 解决方案就是重新自定义图片加载方式GlideEngine...你以为从samplecopy copy代码,导下包就能跑起来了吗,nonono 选择器不光是有图片吧,你可能还有gif和视频啊,所以配置时候你要选择一个type啊 sample是这样 Matisse.from...实际MimeType这个枚举类根本就没有ofImage 所以你应该是这样 Matisse.from(MainActivity.this) .choose(MimeType.of(MimeType.JPEG...; import android.content.pm.ActivityInfo; import android.net.Uri; import android.os.Bundle; import android.support.v7

1.6K10

Android GridView扩展仿微信微博发图动态添加删除图片功能

平时开发,我们会看到不管是微信发朋友圈照片还是微博发布新鲜事,添加图片时候都是选完后面还有个+号再去选择图片,这样的话比较方便用户去添加图片,有的右上角还有个-号方便用户去删除图片,而一般用户选择图片多少都是不定.../** * 让GridView数据数目加1最后一个显示+号 * 当到达最大张数时不再显示+号 * @return 返回GridView数量 */ @Override public...+号图片显示图片**/ Glide.with(context) .load(R.mipmap.image_add) .priority(Priority.HIGH)...1最后一个显示+号 * 当到达最大张数时不再显示+号 * @return 返回GridView数量 */ @Override public int getCount() { int count =...+号图片显示图片**/ Glide.with(context) .load(R.mipmap.image_add) .priority(Priority.HIGH) .centerCrop() .into

2K20

Android 图片裁剪

三、获取图片Uri 在上面我们已经获取到了权限,下面就来获取这个图片Uri,然后通过图片Uri显示这个图片。 首先修改布局activity_main.xml <?...//图片 private ImageView ivPicture; 然后onCreate绑定xmlid。下面你再使用这个ivPicture就不会报空对象了。...RESULT_OK是Activity自带。 然后获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示刚才ivPicture。...(uri, "image/*"); // 下面这个crop=true是设置开启Intent设置显示VIEW可裁剪 intent.putExtra("crop",...可以看到系统剪裁并不是很彻底,gif虽然演示剪裁时是一个圆形,但实际剪裁是一个正方形,这其实和Android系统版本及设置参数有关系。

2.5K20

Android 图片裁剪 (附源码)

下面运行一下: 三、获取图片Uri 在上面我们已经获取到了权限,下面就来获取这个图片Uri,然后通过图片Uri显示这个图片。 首先修改布局activity_main.xml <?...//图片 private ImageView ivPicture; 然后onCreate绑定xmlid。下面你再使用这个ivPicture就不会报空对象了。...RESULT_OK是Activity自带。 然后获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示刚才ivPicture。...(uri, "image/*"); // 下面这个crop=true是设置开启Intent设置显示VIEW可裁剪 intent.putExtra("crop",...运行一下: 可以看到系统剪裁并不是很彻底,gif虽然演示剪裁时是一个圆形,但实际剪裁是一个正方形,这其实和Android系统版本及设置参数有关系。

1.6K30

Android 更换用户头像(拍照、相册选取)

五、底部弹窗显示 如果我没有猜错的话,你activity_main.xml还有一个地方报错。...TextUtils.isEmpty(imagePath)) { //显示图片 Glide.with(this).load(imagePath).apply...九、本地缓存 如果你目前还没有与后台进行交互的话,那要让你图片持久显示,那么你可以用到缓存。...而刚才图片路径是String类型,于是你可以这么写。 拿到路径之后放入缓本地存,注意我用imageUrl作为Key,那么取出缓存也同样需要使用这个key。什么地方取缓存呢?...这样就实现了本地图片缓存了,运行效果如下图 可以看到,当我杀死程序之后再进入时,它显示是我之前从相册中选取图片

1.8K20

Android 更换头像(拍照、相册选取)

五、底部弹窗显示 如果我没有猜错的话,你activity_main.xml还有一个地方报错。...TextUtils.isEmpty(imagePath)) { //显示图片 Glide.with(this).load(imagePath).apply...[在这里插入图片描述] 九、本地缓存 如果你目前还没有与后台进行交互的话,那要让你图片持久显示,那么你可以用到缓存。...而刚才图片路径是String类型,于是你可以这么写。 [在这里插入图片描述] 拿到路径之后放入缓本地存,注意我用imageUrl作为Key,那么取出缓存也同样需要使用这个key。...] 这样就实现了本地图片缓存了,运行效果如下图 [在这里插入图片描述] 可以看到,当我杀死程序之后再进入时,它显示是我之前从相册中选取图片

2.3K32

Glide-图片加载框架全解(一)- 基本用法

="android.permission.INTERNET" /> 就是这么简单,然后我们就可以自由地使用Glide任意功能了。..." /> 为了让用户点击Button时候能够将刚才图片显示ImageView,我们需要修改MainActivity代码,如下所示: public class...,包括加载网络图片、加载手机本地图片、加载应用资源图片等等。...在这里插入图片描述 没错,如果指定了只能加载动态图片,而传入图片却是一张静图的话,那么结果自然就只有加载失败喽。 指定图片大小 实际使用Glide绝大多数情况下我们都是不需要指定图片大小。...关于图片压缩这方面,我之前也翻译过Android官方一篇文章,感兴趣朋友可以去阅读一下 Android高效加载大图、多图解决方案,有效避免程序OOM 。

97110

Android 10适配要点,作用域存储

第一,存储SD卡文件不会计入到应用程序占用空间当中,也就是说即使你SD卡存放了1G文件,你应用程序设置显示占用空间仍然可能只有几十K。...当然,这只是一种权宜之计,未来Android系统版本,这段配置随时都可能会失效(目前Android 11预览版已经确认,这段配置至少Android 11不会失效)。...一张图片Uri格式大致如下所示: content://media/external/images/media/321 那么有些朋友可能会问了,获取到了Uri之后,我又该怎样将这张图片显示出来呢?...这就有很多种办法了,比如使用Glide来加载图片,它本身就支持传入Uri对象来作为图片路径: Glide.with(context).load(uri).into(imageView) 而如果你没有使用...一个是DISPLAY_NAME,也就是图片显示名称,一个是MIME_TYPE,也就是图片mime类型。还有一个是图片存储路径,不过这个值Android 10和之前系统版本处理方式不一样。

2.1K10

Android图片加载框架最全解析(一),Glide基本用法

android:layout_width="wrap_content" android:layout_height="wrap_content" android..." /> 为了让用户点击Button时候能够将刚才图片显示ImageView,我们需要修改MainActivity代码,如下所示: public class...,包括加载网络图片、加载手机本地图片、加载应用资源图片等等。...没错,如果指定了只能加载动态图片,而传入图片却是一张静图的话,那么结果自然就只有加载失败喽。 指定图片大小 实际使用Glide绝大多数情况下我们都是不需要指定图片大小。...关于图片压缩这方面,我之前也翻译过Android官方一篇文章,感兴趣朋友可以去阅读一下 Android高效加载大图、多图解决方案,有效避免程序OOM 。

1.4K110

AndroidGlide动态加载不同大小图片切圆角与圆形方法

Glide加载动态图片 首先我们先要去依赖一个githup:bumptech:glide:glide:3.7.0包; 使用Glide结合列表样式进行图片加载: 1) 如果使用是ListView,...into(holder.imageView); return convertView; } 2) 如果使用是RecyclerView,可以AdapteronBindViewHolder方法中使用...) .load(args[position]) .into(holder.imageView); } 3) 当加载网络图片时,由于加载过程图片未能及时显示,此时可能需要设置等待时图片,...//使用fitCenter即缩放图像让图像都测量出来等于或小于 ImageView 边界范围 //该图像将会完全显示,但可能不会填满整个 ImageView。...解决很简单 既然是图片大小不一致而导致图片切出来不一样,那就把图片一样大小不就可以吗 申明一下我代码也是Glide动态加载圆形图片跟圆角图片搜出来代码基础修改.

3.4K20

使用TensorFlow LiteAndroid手机上实现图像分类

Lite是一款专门针对移动设备深度学习框架,移动设备深度学习框架是部署在手机或者树莓派等小型移动设备深度学习框架,可以使用训练好模型在手机等设备完成推理任务。...获取模型主要有三种方法,第一种是训练时候就保存tflite模型,另外一种就是使用其他格式TensorFlow模型转换成tflite模型,第三是检查点模型转换。...1、创建完成之后,app目录下build.gradle配置文件加上以下配置信息: dependencies下加上包引用,第一个是图片加载框架Glide,第二个就是我们这个项目的核心TensorFlow...predict_image()方法是预测图片显示结果,预测流程是:获取图片路径,然后使用图片进行压缩,之后把图片转换成ByteBuffer格式数据,最后调用tflite.run()方法进行预测...use_photo()方法是打开相册,获取选择图片URI。 get_path_from_URI()方法是把图片URI转换成图片路径。

3.6K41

android实现截图并动画消失效果思路详解

整体思路 1、获取要截图view 2、根据这个view创建Bitmap 3、保存图片,拿到图片路径 4、把图片路径传入自定义view(自定义view实现功能:画圆角边框,动画缩小至消失) 主要用到是...ObjectAnimator属性动画缩小和平移 核心代码 得到图片路径 private String getFilePath() { Bitmap bitmap = createViewBitmap...start) { if (getChildCount() 0) { // 快速点击截图时,一次添加子视图尚未移除,需重置视图 resetView(); } setScaleX...; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager...Runtime.getRuntime().freeMemory(); //已用内存 long usedMemory = Runtime.getRuntime().totalMemory() - freeMemory; //剩下可使用内存

1.5K21

Android手机上使用腾讯ncnn实现图像分类

Android设备使用PaddleMobile实现图像分类》,使用框架是百度开源PaddleMobile。...本章,笔者将会介绍使用腾讯开源手机深度学习框架ncnn来实现在Android手机实现图像分类,这个框架开源时间比较长,相对稳定很多。...: mobilenet_v2.param.bin 网络模型参数; mobilenet_v2.bin 网络权重; mobilenet_v2.id.h 预测图片时候使用到。...开发Android项目 我们Android Studio创建一个NCNN1项目,别忘了选择C++支持。 ? 其他可以直接默认就可以了,在这里要注意选择C++11支持。 ?...代码传送门: 上面已经几乎包括所有的代码了,为了读者方便直接使用,可以https://resource.doiduoyi.com/#q0guggi项目源代码。

3.3K60

Android 10 和Android 11适配

以上场景,涉及到了这些关键点: 把图片存储到sd卡 把绝对路径path传递给qq或者微信 1.1 直接访问sd卡根目录 通过FileOutPutStream来完成,Android10以下都没问题...Android10 公共目录下图片无法通过file:// 格式去访问,提示找不到路径。如glide加载、图片选择库、裁剪框架等等都会收到影响。...但是,这里有个坑: Android10不行,Android11又可以!!为什么? 因为Google改回来了,让Android11支持file://格式了。。。。 (wtf?...glide、qq分享、第三方图片选择框架等都可以正常访问。...三、终极适配方案 Android10 开启标志位 :android:requestLegacyExternalStorage="true"来开启兼容模式,关闭分区适配,相当于targetSdkVersion

1.3K41
领券