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

阅读量0
0
0

​ API9和API12在模拟器上,有一个巨大的区别,那就是API9(开发工具3的版本),他的模拟器里有一个拍照功能(再往前的版本里甚至还有浏览器,可以通过浏览器下载图片),可以通过拍照功能让相册里有图片,从而测试图片相关的功能。在API12的模拟器中,虽然有图库,但是没有拍照,也没有浏览器……看起来似乎没有办法在模拟器里测试图片的相关功能。

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

经过多次研究尝试,我来分享第一个方法:文件拖入法

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

cke_18806.jpg

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

cke_21567.jpg

当然这个方法具有一定的局限性,即你会发现,这个图片并不是在“图库”中,而是在文件里,那么带来的后果是,你只能通过文件选择的方法来获取这张图片。即使用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%')
  }
}

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友