百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

鸿蒙Harmony OS Next原生开发原生UI组件图片配置

yuyutoo 2025-03-20 20:50 8 浏览 0 评论

#春日领好运#

鸿蒙初开,开天辟地

图片尺寸

过于常用,直接width和height就可以设置

可以传递string,number,resource类型进行设置

string一般是设置百分比用到,还有用px和vp的情况下也会用

鸿蒙应用中常用的尺寸单位px和vp

屏幕参数,像素,屏幕显示的最小单位,屏幕上一个小亮点就是一个像素

分辨率,横向上和纵向上的像素数量

屏幕像素

比如说这个图上的手机,它的屏幕就是横向上1080个像素px,纵向上2340个像素px

尺寸,屏幕对角线的长度,用英尺为单位

这个指的是屏幕的对角线的长度,如这个手机的尺寸就是6.1英寸的

像素密度,每英寸屏幕上的像素数量

PPI,较高的像素密度就意味着在相同尺寸的屏幕上像素点更多,可以为用户提供更加清晰和细腻的图像

px,物理像素

以像素个数来定义图像尺寸,这种方式的弊端是在不同像素密度PPI屏幕上,相同像素对应的物理尺寸是不同的,这样就会导致应用在不同设备显示的图片尺寸不同

vp,虚拟像素

可以根据实际屏幕PPI灵活缩放的单位,1vp相当于像素密度为160ppi的屏幕的1px,系统会根据不同屏幕的ppi转换为对应的物理像素px,类似安卓的dp

因为在像素密度低的屏幕上,单个像素的物理尺寸大,像素密度高的屏幕上,单个像素物理尺寸小

总的来说非常接近安卓开发的dp和dpi

通过vp的设置,我们就能在不同像素密度的屏幕上,获取基本一致的观感了

75px和25vp的显示效果

number是具体数值,默认以vp为单位

Resource类型用于引用resources下的element目录中定义的数值

引用element目录中的数值,同样需要使用$r()取值的方式

但是这里的存储文件和取值是有对应讲究的

如:name.json,我需要保存name的string在里面,就需要在json中定义类型的数组,并将需要的内容以键值对的形式保存进去

{
  "string": [
    {
      "name": "Jack",
      "value": "杰克"
    },
    {
      "name": "Rose",
      "value": "露丝"
    }
  ]
}

当我们要取值的时候,指明类型和key就可以直接获取到

@Component
export default struct See {
  @State options:string[] = ["JAVA","Python","C#","Golang"];
  @State answer:string = "____";
  build() {
    Column({space:20}){
      Row(){
        Text("江河浩瀚,胡生可安").fontSize(25).fontWeight(FontWeight.Bold);
        Text(this.answer).fontSize(25).fontWeight(FontWeight.Bold);
      };
      Image($r('app.media.background')).height('75px').width('75px');
      Image($rawfile('123.png')).height('25vp').width('25vp');
      Text($r('app.string.Rose'))
      Button({type:ButtonType.Circle}){
        Text("ArkTS")
      }.onClick(()=>{
        // this.options = ["JAVA","Python","C#","Golang","ArkTs"];
        this.options.push("ArkTs");
      }).width(50).height(50);
      ForEach(this.options,(item:string) => {
        Button(item).width(100).backgroundColor(Color.Red).onClick(()=>{
          this.answer = item;
        });
      },((item:string)=>
          JSON.stringify(item)
      ));
    }
  }
}

相关推荐

《保卫萝卜2》安卓版大更新 壕礼助阵世界杯

《保卫萝卜2:极地冒险》本周不仅迎来了安卓版本的重大更新,同时将于7月4日本周五,带来“保卫萝卜2”安卓版本世界杯主题活动的火热开启,游戏更新与活动两不误。一定有玩家会问,激萌塔防到底进行了哪些更新?...

儿童手工折纸:胡萝卜,和孩子一起边玩边学carrot

1、准备两张正方形纸,一橙一绿,对折出折痕。2、橙色沿其中一条对角线如图折两三角形。3、把上面三角折平,如图。4、绿色纸折成三角形。5、再折成更小的三角形。6、再折三分之一如图。7、打开折纸,压平中间...

《饥荒》食物代码有哪些(饥荒最新版代码总汇食物篇)

饥荒游戏中,玩家们需要获取各种素材与食物,进行生存。玩家们在游戏中,进入游戏后按“~”键调出控制台使用代码,可以直接获得素材。比如胡萝卜的代码是carrot,玉米的代码是corn,南瓜的代码是pump...

Skyscanner:帮你找到最便宜机票 订票不求人

你喜欢旅行吗?在合适的时间、合适的目的地,来一场说走就走的旅行?机票就是关键!Skyscanner这款免费的手机应用,在几秒钟内比较全球600多家航空公司的航班安排、价格和时刻表,帮你节省金钱和时间。...

小猪佩奇第二季50(小猪佩奇第二季英文版免费观看)

Sleepover过夜Itisnighttime.现在是晚上。...

我在民政局工作的那些事儿(二)(我在民政局上班)

时间到了1997年的秋天,经过一年多的学习和实践,我在处理结婚和离婚的事情更加的娴熟,也获得了领导的器重,所以我在处理平时的工作时也能得心应手。这一天我正在离婚处和同事闲聊,因为离婚处几天也遇不到人,...

夏天来了就你还没瘦?教你不节食13天瘦10斤的哥本哈根减肥法……

好看的人都关注江苏气象啦夏天很快就要来了你是否和苏苏一样身上的肉肉还没做好准备?真是一个悲伤的故事……下面这个哥本哈根减肥法苏苏的同事亲测有效不节食不运动不反弹大家快来一起试试看吧~DAY1...

Pursuing global modernization for peaceful development, mutually beneficial cooperation, prosperity for all

AlocalworkeroperatesequipmentintheChina-EgyptTEDASuezEconomicandTradeCooperationZonei...

Centuries-old tea road regains glory as Belt and Road cooperation deepens

FUZHOU/ST.PETERSBURG,Oct.2(Xinhua)--NestledinthepicturesqueWuyiMountainsinsoutheastChi...

15 THE NUTCRACKERS OF NUTCRACKER LODGE (CONTINUED)胡桃夹子小屋里的胡桃夹子(续篇)

...

AI模型部署:Triton Inference Server模型部署框架简介和快速实践

关键词:...

Ftrace function graph简介(flat function)

引言由于android开发的需要与systrace的普及,现在大家在进行性能与功耗分析时候,经常会用到systrace跟pefetto.而systrace就是基于内核的eventtracing来实...

JAVA历史版本(java各版本)

JAVA发展1.1996年1月23日JDK1.0Java虚拟机SunClassicVM,Applet,AWT2.1997年2月19日JDK1.1JAR文件格式,JDBC,JavaBea...

java 进化史1(java的进阶之路)

java从1996年1月第一个版本诞生,到2022年3月最新的java18,已经经历了27年,整整18个大的版本。很久之前有人就说java要被淘汰,但是java活到现在依然坚挺,不知道java还能活...

学习java第二天(java学完后能做什么)

#java知识#...

取消回复欢迎 发表评论: