天天看點

【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

​ 參考資料

picasso

代碼實作

1、準備工作

在項目級的bulid.gradle檔案添加如下代碼

allprojects{
        repositories{
            mavenCentral()
        }
    }           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

在entry的bulid.gradle檔案添加如下代碼

implementation 'io.openharmony.tpc.thirdlib:picasso:1.0.4'           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

2、設定權限

在confing.json添權重限,代碼如下

"reqPermissions": [{
      "name": "ohos.permission.INTERNET"
    }],           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

在config.json修改deviceConfig的代碼,代碼如下

"deviceConfig": {
    "default": {
      "network": {
        "cleartextTraffic": true
      }
    }
  },           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

3、xml布局

在xml添加一個Image元件代碼如下

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

    <Image
        ohos:height="200vp"
        ohos:width="match_parent"
        ohos:image_src="#ed6262"
        ohos:id="$+id:myImage"/>

</DirectionalLayout>           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

4、java代碼實作

在java 代碼中查這個元件然後調用項目api去加載網絡圖檔,代碼如下

package com.newdemo.myapplication.slice;

import com.newdemo.myapplication.ResourceTable;
import com.squareup.picasso.Picasso;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Component;
import ohos.agp.components.Image;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        //todo 查找Image元件
        Image myimage=findComponentById(ResourceTable.Id_myImage);
        Picasso.get()
                //todo 加載網絡圖檔
                .load("https://www.baidu.com/img/flexible/logo/pc/result.png")
             //todo 空的占位圖
                .placeholder(ResourceTable.Media_icon)
                //todo 加載錯誤的圖檔
                .error(ResourceTable.Media_icon)
                //todo 加載元件上
                .into(myimage);
    }

}           
【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

運作效果

【JAVA UI】HarmonyOS如何內建picasso加載網絡圖檔

欲了解更多更全技術文章,歡迎通路https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh