为了账号安全,请及时绑定邮箱和手机立即绑定

##DevEco Studio##如何让模拟器里有图片?【文件拖入法】

标签:
鸿蒙


API9和API12在模拟器上,有一个巨大的区别,那就是API9(对应的是开发工具3开头的版本),这个版本的模拟器里有一个拍照功能(再往前的版本里甚至还有浏览器可以用,让开发者在需要本地图片进行测试的时候可以通过浏览器下载图片),可以通过拍照功能让相册里有图片,从而测试与图片相关的一些功能(例如图片的编辑、上传等)。在API12的模拟器中,虽然有图库,但是没有拍照,也没有浏览器……看起来似乎没有办法在模拟器里测试图片的相关功能。

问题是不过大部分用做原生鸿蒙系统项目的学生并不具备有真机调试的能力……如果想要接到单子的话……这个问题还是要想办法解决

经过多次研究尝试,我找到了两种方法,分别是文件拖入法和图片下载法,现在先来分享第一个方法:文件拖入法

首先我们打开一个模拟器,然后从你的电脑上,选择一张图片,直接拖进去,会提示“文件上传中”

file

然后屏幕向右滑动(我也不知道为什么,文件这个在第二个屏幕里),点开“文件管理”— “我的手机” — “下载”,你就能看到刚才传进去的图片了
file

当然这个方法具有一定的局限性,即你会发现,这个图片并不是在“图库”中,而是在文件里,那么带来的后果是,你只能通过文件选择的方法来获取这张图片。即使用DocumentViewPicker来获取。调用这个接口以后,在弹出的页面中,选择“浏览”— “我的手机”— “下载”,在这个文件夹里选择对应的图片,可以用来测试比如说图片上传,文件读写等。但是涉及到图片的相关处理,我们是需要使用PhotoViewPicker进行选择的,弹出的是“安全访问图库”即“图库”,那么我们之前也说过,通过这个方法拖入的图片,是属于“文件”,而不是在“图库”中的,所以是访问不到的。如果想要更加完善的方案,关注下一期的文章,我来为大家介绍图片下载法

​示例代码如下:

示例代码:

import  { picker } from '@kit.CoreFileKit';
@Entry
@Component
struct Index {
  @State message: string = 'hello World';


  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            let context = this.getUIContext().getHostContext() as common.UIAbilityContext; // 请确保this.getUIContext().getHostContext()返回结果为UIAbilityContext
            let documentPicker = new picker.DocumentViewPicker(context);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消