Android中利用xml文件布局修改Helloworld程序
作者:yongh701 发布时间:2023-10-24 08:45:05
Android环境布置完毕,直接就是一个Helloworld程序,详情请看《利用adt-bundle轻松搭建Android开发环境与Hello world(Linux)》这使得很多人难以理清整个Android项目的基本结构。其实安卓项目,与其它Java工程的项目,SSH、Servlet等,都是采取Java与XML文件联合的方式,形成一个工程的。
有几个文件是需要熟知的。如下图:
MainActivity.java是整个安卓工程的入口,
其中,里面的protected void onCreate(Bundle savedInstanceState) {}方法中的setContentView(R.layout.activity_main);方法指明,要加载res文件下的activity_main.xml的布局文件。之所以可以这样搞。是因为它有一个Eclipse会自动更新的gen文件夹。gen文件夹的R.java文件,会随你的xml更新而更新。
因此,之后,我们为了达到如下的效果,修改Helloworld程序成一个在整个屏幕内垂直居中的红色字符串,如下图所示:
我们就要改动res文件下的activity_main.xml。如下图:
这里原本就有一个TextView的组件,类似于vb,c++,c#的Label组件的标签文本的东西。很正常嘛,因为原来的Helloworld程序就是有一个Helloworld文本在apk的左上角。
我们将其的代码修改成这样,最终就如上图所示:
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello_world"
style="@style/text_style"
/>
</RelativeLayout>
其android:layout_width="fill_parent",android:layout_height="fill_parent"两个属性意为,这个Label标签的控件的大小是占据整个屏幕的。
这样,才能通过android:gravity="center_vertical"属性,使其在屏幕内居中,这里Android4.0开发,layout_gravity好像已经不管用了,直接用gravity属性。
之后这个组件的文本在string.xml的hello_world标签中,这里也可以直接写出相应的值,不过Eclipse会出现警告,因为,如同struts2倡导的那样,把所有东西都用标签表示,便于以后的国际化。在struts2中真的没必要这样做了。在安卓中,这样起码能够适应各个屏幕还能说得过去。
因此我们接下去要修改values文件夹下的strings.xml文件了。找到name=hello_world的这个字符串,改成你要改的东西。当然,这里你也可以改改程序的标题app_name,把Helloworld改成“你好,世界”汉化一下这个程序。
可以在activity_main.xml中看到,这个TextView组件的样式在strings.xml指定的text_style项,之后我们再改改styles.xml,再里面加入一个text_style项,如下代码,给这个Hellowssssssssssssssssorld!字符串加粗变红,这个strings.xml一如网页开发中的css文件。这里唯一值得注意的是,在安卓中的单位是sp,而不是px,这有利于你的安卓程序运行于各大设备。
<style name="text_style">
<item name="android:textSize">24sp</item>
<item name="android:textColor">#ff0000</item>
<item name="android:textStyle">bold</item>
</style>
弄好之后如下图所示:
这样就得到如下的效果了:
猜你喜欢
- Stream流常见的中间操作方法Streamfilter(Predicate predicate):用于对流中的数据进行过滤predicat
- 前言先简单介绍下我们的使用场景,线上5台Broker节点的kafka承接了所有binlog订阅的数据,用于Flink组件接收数据做数据中台的
- 关于用户token处理到的坑当采用前后台完全分离,以微服务架构的搭建时。在搭建微服务过程中,由于每个服务都是独立的应用,这样就会造成一个统一
- 1.面对对象的初步认识1.1什么是面向对象用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。1
- 前言之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密) 》。在这篇文章中
- 前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了
- 实现文档在线预览的方式除了上篇文章《文档在线预览(一)通过将txt、word、pdf转成图片实现在线预览功能》说的将文档转成图片的实现方式外
- 序言:此前,我们主要通过XML来书写SQL和填补对象映射关系。在SpringBoot中我们可以通过注解来快速编写SQL并实现数据访问。(仅需
- 你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和
- 在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等。如果你想监控某一个线程池的执行状态,线程池执行类
- 本文介绍Android中Intent的各种常见作用。1 Intent.ACTION_MAINString: android.intent.a
- 一、Thread 类了解如何使用Thread 类实现多线程之后,继续学习Thread 类实现多线程之后的相关功能及方法。1、操作线程名称的方
- 做消息通信,消息会不断从网络流中取得,而后台也有线程不断消费。本来我一直是使用一些线程安全标识或方法来控制,后来在网上找到一些java新特性
- 本文通过优化买票的重复流程来说明享元模式,为了加深对该模式的理解,会以String和基本数据类型的包装类对该模式的设计进一步说明。读者可以拉
- Android资源文件大致可以分为两种:第一种是res目录下存放的可编译的资源文件:这种资源文件系统会在R.java里面自动生成该资源文件的
- java "equals"和"==”异同首先简单说一下“equal”和“==”==操作对于基本数据类型比较的是
- 本文实例为大家分享了Java实现简单幸运抽奖的具体代码,供大家参考,具体内容如下代码模块:User类:package test1;publi
- 本文实例讲述了C#域名解析简单实现方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Coll
- 1.Mybatis概述 MyBatis 是一款
- 下载IDEA插件IDEA插件选择版本号下载与IDEA版本号相近的插件打开IDEA,导入下载好的插件在File下找到setting在Plugi