`
XiangdongLee
  • 浏览: 91289 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【攻克Android (3)】资源国际化、屏幕适配

阅读更多
本文围绕以下两个部分展开:

一、资源国际化
二、屏幕适配






一、资源国际化

        1.在 res -> values -> strings.xml 中,定义所有所需的文本

 <resources>  
   <string name="app_name">UI</string>  
   
   <string name="action_settings">Settings</string>  
   
   <string name="app">App</string>  
   <string name="game">Game</string>  
   <string name="movie">Movie</string>  
   <string name="music">Music</string>  
   
 </resources> 


        定义字符串常量,遵守“名值对”。
        如: <string name="app">App</string> 中,名是app,值是 App

        2.在 res -> layout -> activity_main.xml 布局文件中,设计主活动布局

 <RelativeLayout xmlns: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:paddingLeft="@dimen/activity_horizontal_margin"  
                 android:paddingRight="@dimen/activity_horizontal_margin"  
                 android:paddingTop="@dimen/activity_vertical_margin"  
                 android:paddingBottom="@dimen/activity_vertical_margin"  
                 tools:context=".MainActivity">  
   
   <Button  
       android:id="@+id/btn_app"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:text="@string/app"/>  
   
   <Button  
       android:id="@+id/btn_game"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btn_app"  
       android:text="@string/game"/>  
   
   <Button  
       android:id="@+id/btn_movie"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btn_game"  
       android:text="@string/movie"/>  
   
   <Button  
       android:id="@+id/btn_music"  
       android:layout_width="match_parent"  
       android:layout_height="wrap_content"  
       android:layout_below="@+id/btn_movie"  
       android:text="@string/music"/>  
   
 </RelativeLayout> 



        代码说明:



        3.资源国际化(internationalization, i18n)

        资源国际化之前,由于是用英文开发的,因此app的名字和界面中的内容都是英文的,如下。





        资源国际化有以下几步:









        资源国际化之后,因为本人手机语言是中文,因此app的名字和界面中的内容都已显示中文,如下。






二、屏幕适配

        手机默认是竖屏显示,因此需要创建并编写横屏的布局文件,以便在竖屏和横屏的时候,加载不同的布局文件,来实现屏幕的适配。如下分别是竖屏和横屏的显示效果。





        步骤如下:







        产生 activity_main.xml(land) 后,再在里面写布局代码,之后部署即可看到效果。

 <?xml version="1.0" encoding="utf-8"?>  
 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  
              android:layout_width="match_parent"  
              android:layout_height="match_parent"  
              android:stretchColumns="*">  
   
   <!-- TableLayout 表格布局  
   stretchColumns 任意列  
   TableRow 表格行  
   layout_column 表格行中第几列  
   -->  
   
   <TableRow  
       android:layout_width="match_parent"  
       android:layout_height="match_parent">  
   
     <Button  
         android:id="@+id/btn_app"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_column="0"  
         android:text="@string/app"/>  
   
     <Button  
         android:id="@+id/btn_game"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_column="1"  
         android:text="@string/game"/>  
   </TableRow>  
   
   <TableRow  
       android:layout_width="match_parent"  
       android:layout_height="match_parent">  
   
     <Button  
         android:id="@+id/btn_movie"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_column="0"  
         android:text="@string/movie"/>  
   
     <Button  
         android:id="@+id/btn_music"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:layout_column="1"  
         android:text="@string/music"/>  
   </TableRow>  
   
 </TableLayout>
  • 大小: 59.2 KB
  • 大小: 99.3 KB
  • 大小: 15.4 KB
  • 大小: 53.4 KB
  • 大小: 25.6 KB
  • 大小: 39.7 KB
  • 大小: 60.8 KB
  • 大小: 111 KB
  • 大小: 16 KB
  • 大小: 17.9 KB
  • 大小: 20.7 KB
  • 大小: 42.1 KB
  • 大小: 27.1 KB
  • 大小: 25.4 KB
分享到:
评论

相关推荐

    24学时攻克c++

    - **构造函数与析构函数**:初始化和清理资源。 #### 2. 继承与多态 - **继承**:子类可以继承父类的属性和方法。 - **多态**:允许子类重写父类的方法或实现接口。 - **抽象类**:包含纯虚函数的类,不可实例化。 ...

    一站攻克前端效率工程化难题-视频教程网盘链接提取码下载 .txt

    随着 Web 业务日益复杂化和多元化,前端效率提升已经被很多一线企业作为技术层面的一个重点优化方向。而在面试中,对效率工程化的理解程度和实践中的优化产出情况,也成为衡量前端工程师能力高低的常见标准。对于...

    攻克Data动态获取网页评论,保存数据库

    【攻克Data动态获取网页评论,保存数据库】是一个关于利用特定工具——攻克Data,来抓取网页上的评论数据并存储到数据库的过程。这个过程涉及到网络爬虫技术、JSON解析以及数据库管理等多个IT领域的知识点。 1. **...

    大学生攻克Linux系统教程

    【大学生攻克Linux系统教程】 本教程专为对Linux操作系统感兴趣的初学者设计,旨在提供一个从零开始学习Linux的全面指南。教程内容涵盖了Linux系统的安装、基本操作、文本编辑器VI的使用、调试工具GDB的基础知识,...

    Android自动来电录音

    在Android平台上实现自动来电录音是一项技术挑战,但并非无法攻克。Android系统提供了丰富的API和工具,使得开发者可以创建各种功能丰富的应用,包括来电录音。在本文中,我们将深入探讨如何利用Android的...

    人力资源攻克薪酬体系设计难题——3P+1M定义.pdf

    3P+1M薪酬支付理念是现代人力资源管理中薪酬体系设计的重要理论框架,旨在确保薪酬的公平性、激励性和市场竞争力。这一理念由四个核心要素构成:职位(Position)、能力(Proficiency)、绩效(Performance)和市场...

    中国零售渠道数字化转型白皮书:攻克最后的堡垒.rar

    《中国零售渠道数字化转型白皮书:攻克最后的堡垒》是针对中国零售行业在数字化进程中面临挑战与机遇的专业研究报告。这份文件深入剖析了零售企业在数字化转型中的关键问题,旨在为行业提供策略指导和实践建议。 一...

    新东方8天攻克8000单词魔鬼训练营

    压缩包内的文件名“新东方8天攻克8000单词魔鬼训练营”可能是整个课程的资料集合,可能包含课程大纲、课件、练习题、词汇表等,这些资源可以帮助学习者按照训练营的结构进行自我学习或复习。 综合以上信息,这个...

    100G传输商用化需攻克四大技术.pdf

    标题:“100G传输商用化需攻克四大技术.pdf” 描述:“光通信最重要的特点就是具有几乎用不尽的带宽资源。随着信息社会的发展,人们对信息服务的需求量与日俱增。100GbpsWDM系统是一个重要方向。超宽带时代,承载网...

    24小时攻克c++代码

    《24小时攻克C++代码》是一门针对C++编程语言深入浅出的学习教程,旨在帮助初学者在短时间内掌握C++编程基础,并逐步提升至进阶水平。C++是一种广泛应用的面向对象编程语言,它的强大功能和高效性能使得它在系统软件...

    3ds Max全面攻克_全面实例精解_CD4

    3ds Max全面攻克_全面实例精解_CD43ds Max全面攻克_全面实例精解_CD43ds Max全面攻克_全面实例精解_CD43ds Max全面攻克_全面实例精解_CD43ds Max全面攻克_全面实例精解_CD43ds Max全面攻克_全面实例精解_CD43ds Max...

    24学时攻克c++_笔记

    ### 3. 变量和常量 在C++中,变量用于存储数据,而常量则用于表示固定的值。良好的编码习惯包括:每个变量单独声明,初始化变量时尽可能给予初始值,使用有意义的标识符,以及对于具有物理意义的常量使用枚举或宏...

    【备战2014】高考化学 精讲巧解分类攻克3

    【备战2014】高考化学 精讲巧解分类攻克3

    【备战2014】高考历史 精讲巧解分类攻克3

    【备战2014】高考历史 精讲巧解分类攻克3

    Android程序技术:开拓创新.pptx

    北斗二号系统率先提出国际上首个高中轨道混合星座新体制,攻克了以高精度星载原子钟等为代表的多项关键技术。 北斗三号系统攻克了具有自主知识产权的星间链路、自主定轨等关键技术,建立了国产器部件从研制、验证到...

    沈阳自动化研究所攻克无芯片RFID标签天线印制技术.pdf

    沈阳自动化研究所攻克无芯片RFID标签天线印制技术.pdf

    8天攻克8000英语词汇

    8天攻克8000词汇,word版,方便学习,背单词的好东东

    大学生攻克Linux系统教程.rar

    大学生攻克Linux系统教程(又名天下没有难学的Linux)。一位在校大学生整理的教程,献给每一位要征服Linux的学习者-五星级的Linux教程。 本书汇集众多Linux学习者的心血与贡献,有很多作者在默默的为你呼喊,感谢...

    攻克Linux系统教程

    "攻克Linux系统教程"旨在帮助初学者和有一定基础的学习者深入理解Linux系统,掌握其核心概念和操作技能。 首先,我们需要了解Linux的基础知识。Linux并非单一的操作系统,而是基于Linux内核的各种发行版的总称,如...

    24学时攻克C++源码及习题答案

    在学习编程语言C++的过程中,24学时的课程安排是一个相当常见的学习进度,这个压缩包文件名为"24学时攻克C++源码及习题答案",显然是为初学者设计的一套完整教程。C++是面向对象编程的重要语言,它的强大功能和广泛...

Global site tag (gtag.js) - Google Analytics