设计思路:

1)将准备好的八个图标复制到res/drawable文件夹下

2)创建一个垂直的线性布局,并在线性布局中创建4个相对布局

3)在相对布局中添加相应的TextView

4)在values文件下的style.xml文件中存放抽取出来的样式

5)创建values-zh-rCN、values-en-rUS文件夹,并在文件夹中创建strings.xml文件

一、布局文件

程序界面对应布局文件activity_mian.xml如下所示:

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/darker_gray"

android:orientation="vertical"

tools:context=".MainActivity">

<RelativeLayout style="@style/h_wrap_content"

android:layout_marginTop="10dp">

<TextView

style="@style/tv_style"

android:layout_alignParentLeft="true"

android:layout_marginLeft="10dp"

android:drawableTop="@drawable/clound"

android:text="@string/_cloud"/>

<TextView

style="@style/tv_style"

android:layout_alignParentRight="true"

android:layout_marginRight="10dp"

android:drawableTop="@drawable/bluetooth"

android:text="@string/_bluetooth"/>

</RelativeLayout>

<RelativeLayoutstyle="@style/h_wrap_content"

android:layout_marginTop="10dp">

<TextView

style="@style/tv_style"

android:layout_alignParentLeft="true"

android:layout_marginLeft="10dp"

android:drawableTop="@drawable/gesture"

android:text="@string/_gesture" />

<TextView

style="@style/tv_style"

android:layout_alignParentRight="true"

android:layout_marginRight="10dp"

android:drawableTop="@drawable/gps"

android:text="@string/_gps" />

</RelativeLayout>

<RelativeLayoutstyle="@style/h_wrap_content"

android:layout_marginTop="10dp">

<TextView

style="@style/tv_style"

android:layout_alignParentLeft="true"

android:layout_marginLeft="10dp"

android:drawableTop="@drawable/info"

android:text="@string/_system_info" />

<TextView

style="@style/tv_style"

android:layout_alignParentRight="true"

android:layout_marginRight="10dp"

android:drawableTop="@drawable/internet"

android:text="@string/_internet" />

</RelativeLayout>

<RelativeLayoutstyle="@style/h_wrap_content"

android:layout_marginTop="10dp">

<TextView

style="@style/tv_style"

android:layout_alignParentLeft="true"

android:layout_marginLeft="10dp"

android:drawableTop="@drawable/language"

android:text="@string/_language" />

<TextView

style="@style/tv_style"

android:layout_alignParentRight="true"

android:layout_marginRight="10dp"

android:drawableTop="@drawable/notifycation"

android:text="@string/_set_notifycation" />

</RelativeLayout>

</LinearLayout>

二、样式抽取

由于编写布局文件时,相同控件之间的外边距和宽高都是固定的。因此会产生大量重复的布局代码,为了代码简洁和重复使用可以将相同代码抽取为样式单独放在一个style.xml文件中。

style.xml文件如下所示:

<resources>

<style name="AppBaseTheme"parent="android:Theme.Light">

</style>

<style name="AppTheme"parent="AppBaseTheme">

</style>

<!-- 宽 match——parent 高 wrap_content-->

<stylename="h_wrap_content">

<item name="android:layout_width">match_parent</item>

<itemname="android:layout_height">wrap_content</item>

</style>

<!-- 宽高都 match——parent -->

<style name="tv_style">

<itemname="android:layout_width">145dp</item>

<item name="android:layout_height">90dp</item>

<itemname="android:gravity">center</item>

<itemname="android:paddingTop">8dp</item>

<itemname="android:paddingBottom">8dp</item>

<itemname="android:drawablePadding">5dp</item>

<item name="android:background">@android:color/white</item>

</style>

</resources>

三、创建values-zh-rCN、values-en-rUS文件夹

1.values-zh-rCN文件夹下的strings.xml文件如下所示:

<?xmlversion="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">手机信息页面</string>

<stringname="menu_settings">设置</string>

<string name="hello_world">你好,世界!</string>

<string name="_cloud">云通信</string>

<string name="_bluetooth">蓝牙</string>

<string name="_gesture">自定义手势</string>

<string name="_gps">定位</string>

<stringname="_system_info">系统信息</string>

<string name="_internet">网络</string>

<string name="_language">语言设置</string>

<stringname="_set_notifycation">通知栏设置</string>

</resources>

2.values-en-rUS文件夹下的strings.xml文件如下所示:

<?xmlversion="1.0" encoding="utf-8"?>

<resources>

<stringname="app_name">phoneInfo</string>

<stringname="menu_settings">Settings</string>

<stringname="hello_world">Hello world!</string>

<stringname="_cloud">Cloud</string>

<stringname="_bluetooth">Bluetooth</string>

<stringname="_gesture">Gesture</string>

<stringname="_gps">Gps</string>

<stringname="_system_info">SystemInfo</string>

<stringname="_internet">Internet</string>

<stringname="_language">Language</string>

<string name="_set_notifycation">Notifycation</string>

</resources>

四、测试结果

通过上面的简单几步我们就完成了对页面的布局以及样式的抽取。下面就是我们的运行结果

有中英文两种语言下的界面

利用线性布局和相对布局实现一个简单的页面相关推荐

  1. 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三

    在1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一 基础上进行如下操作: 所有路由不能全部都在myDjango下的urls.py路由文件中, ...

  2. 利用霍尔效应传感器和Arduino研究了一个简单的钟摆

    A simple pendulum studied using Hall effect sensor and Arduino 利用霍尔效应传感器和Arduino研究了一个简单的钟摆:原文(Hall e ...

  3. 入门攻略丨教你用低代码实现一个简单的页面跳转功能

    一.介绍 HUAWEI DevEco Studio(后文简称:IDE)自2020年9月首次发布以来,经10次迭代升级,不断为HarmonyOS应用开发增强能力.3月31日,IDE再度升级到DevEco ...

  4. 利用USB接口转串口芯片,做一个简单的闪光灯

    对于简单的单片机一个连接介绍,本文用STC15F104W单片机为例. 一.需要的设备:一个USB接口,一个最简单的STC15F104W芯片. 二.如何连接单片机和USB接口. 三.介绍一个简单的闪光灯 ...

  5. 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)

    在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...

  6. linux 页面内容输出,Node.js 一个简单的页面输出

    最近决定重拾node.js,用它来做一个合并JS文件的东西.由于忘得差不多了,先看能不能输出一个页面来再说.以下是我的一些笔记,省得以后又忘净光-- 安装过程就不说了.如果成功是能使用node的命令. ...

  7. 只用html5与CSS做一个简单的页面,HTML+CSS基础训练之做一个简单页面的布局

    下面进入正题:布局是网页设计的基础中的基础,一个好的布局可以让人一目了然,一个失败的布局会让协同人员抓狂.所以前端开发,从布局开始. 首先分析一下图片的布局 ,分析各个色块之间的嵌套关系 如图所示:红 ...

  8. 1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二

    七.在项目下新建 templates 路径 在工程上,右键,添加templates目录 注意*: 此目录下即用来存放我们的html文件: 此目录一般是与app的主目录是平级的.当然也可以建立在app的 ...

  9. 1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一

    首先,安装python3.8和pycharm参考其他教程. 一.安装django 使用下面命令默认安装最新版的django pip install django 使用下面命令可以安装指定版本 pip ...

最新文章

  1. @Autowired注解通过源码讲原理
  2. 机器学习基础专题:随机变量
  3. 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)
  4. git修改远程仓库关联
  5. Android_Servlet验证的简单登录程序
  6. 次要GC,主要GC与完整GC
  7. ELK 构建 MySQL 慢日志收集平台详解
  8. Linux7/Redhat7/Centos7 安装Oracle 12C_配置VNC远程安装数据库_03
  9. 邮箱伪造漏洞、钓鱼邮件漏洞(未添加SPF导致)
  10. Java SSM 与 SpringBoot
  11. 回文问题‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
  12. 京东支付-付款码支付测试不通原因在这
  13. inSSIDer无线信号扫描工具
  14. 用MySQL绘制新年祝福图形_qq空间留言代码之新年祝福篇
  15. Jlink v9仿真器PCB原理图自动升级固件
  16. 全国数字金融与量化金融案例大赛经验分享
  17. linux系统下深度学习环境搭建和使用
  18. 安防集成商的出路在哪里?
  19. 申请ssl 验证域名 失败了 中间证书
  20. 乔布斯2005年斯坦福大学毕业典礼演讲原文 – Stay hungry, stay foolish

热门文章

  1. 音频格式转换(ffmpeg)
  2. 见闻-关于codec芯片
  3. Delphi中实现MDI子窗体(转)
  4. html数学相关符号
  5. html标签生成的快捷键
  6. 代码diff服务改进方案
  7. 基于AVpro视频播放器的展馆视频播放
  8. 支持居者有其屋,支持房产税出台与落地。
  9. 《文章生成器》根据关键词生成一篇文章
  10. 什么是Email Bounced(被退回)