继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

上海张律师
关注TA
已关注
手记 68
粉丝 0
获赞 0


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%')
  }
}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP