电子产业一站式赋能平台

PCB联盟网

搜索
查看: 600|回复: 0
收起左侧

鸿蒙应用:在线电子词典练习部分分享

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-12-23 17:56:32 | 显示全部楼层 |阅读模式
鸿蒙应用:在线电子词典练习部分分享, 前期部分效果图



代码如下:

<?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:orientation=“vertical“>



   <DirectionalLayout

         ohos:height=“match_parent“

         ohos:width=“match_parent“

         ohos:left_margin=“200vp“

         ohos:right_margin=“200vp“

         ohos:top_margin=“20vp“

         ohos:orientation=“vertical“>



         <DirectionalLayout

             ohos:height=“50vp“

             ohos:width=“match_parent“

             ohos:orientation=“horizontal“>



             <TextField

                 ohos:id=“$+id:jltftextfield_word“

                 ohos:height=“match_content“

                 ohos:width=“match_parent“

                 ohos:hint=“请输入要查询的单词“

                 ohos:background_element=“$graphic:border“

                 ohos:weight=“1“

                 ohos:padding=“4vp“

                 ohos:text_size=“30“/>

              <Button

                  ohos:id=“$+id:jltfbutton_search“

                  ohos:height=“30vp“

                  ohos:width=“100vp“

                  ohos:text=“搜索“

                  ohos:scale_mode=“zoom_center“/>

         </DirectionalLayout>



     <Text

         ohos:id=“$+id:jltftext_search_result“

         ohos:height=“200vp“

         ohos:width=“match_parent“

         ohos:multiple_lines=“true“

         ohos:visibility=“hide“

         ohos:top_margin=“10vp“

         ohos:text_alignment=“left|top“

         ohos:text_size=“20vp“

        />

      <Image

          ohos:id=“$+id:jltfimage“

          ohos:weight=“1“

          ohos:height=“match_parent“

          ohos:width=“match_parent“

          ohos:image_src=“$media:index3“

          ohos:scale_mode=“zoom_center“/>

   </DirectionalLayout>

</DirectionalLayout>

提取本地词库

代码如下:

新建一个包一个类(电子词典类)

package com.example.jltfzidian.common;



import ohos.app.AbilityContext;

import ohos.global.resource.Resource;



import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.file.Paths;



public class jltfmydict {

     private AbilityContext context;

     private File jltfdictpath;

     private  File jltfdbpath;

     public   jltfmydict(AbilityContext context){

         this.context = context;

         jltfdictpath = new File(context.getDatabaseDir().toString() +

                 “/MainAbility/databases/db“);

         if (!jltfdictpath.exists()){

             jltfdictpath.mkdirs();

         }

         jltfdbpath = new

                 File(Paths.
get(jltfdbpath.toString(),“edictshujuku.sql“).toString());

     }

     private void jltfextractdb() throws IOException{

         //读取edictshujuku.sql文件的字节流

         Resource resource =

                 context.getResourceManager().getRawFileEntry(“resoutces/rawfile/edictshujuku.sql“).openRawFile();

         if (jltfdbpath.exists()){

             jltfdbpath.delete();

         }

         FileOutputStream jltffos = new FileOutputStream(jltfdbpath);

         byte[] jltfbuffer = new byte[4096];

         int count = 0;

         while ((count = resource.read(jltfbuffer))>= 0){

             jltffos.write(jltfbuffer,0,count);

         }

         resource.close();

         jltffos.close();

     }

     public void init() throws  IOException{

         jltfextractdb();

     }

}

MainAbilitySlice中 添加如下代码



     mydict = new jltfmydict(this);

     try {

         mydict.init();

     }catch (IOException e){

         terminateAbility();

     }

}

本练习参考了李宁老师公开的代码与课程。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表