Android UI学习系列

学习步骤和重点

  • UI布局
  • 主要UI元素
  • 主要按钮和事件
  • 屏幕跳转
  • 弹出框

一. Android UI布局

本段主要参考 此人博客,稍加整理。原文请见:原文

1.1 线性布局(LinearLayout

此种布局一个重要参数为android:orientation="horizontal"(水平显示),共2中元素垂直显示为“vertical”。

参考代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
</LinearLayout>

1.2 相对布局(RelativeLayout

此种布局非常的好用方便,你可以按照自己的需要,快速的定位你的UI元素到你想要的位置,重要参数

android:layout_below:“相对应按钮idA”,此句代码表示相对于按钮A的下方。其他上下左右可以自己实践。

参考代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/progressBar1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="52dp"
        android:text="正在加载中..."
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

参考图片实例

image

1.3 列表视图(List View

暂时忽略不讲,后面用到再总结。

主要UI元素

视图类android.view.View是widgets的基类,Android的UI元素大部分都包含在android.Widgets中。各个类的继承关系如下图

image

2.1 文本(TextView)

就是简单的文本显示,后台获取文本的内容代码:

TextView viewme=(TextView) findViewById(R.id.textView1);
viewme.setText(“test”);

2.2 按钮(Button)

按钮也是比较简单的,下节重点讲解事件

2.3 图片(ImageView)

ImageView的核心是图像的来源,方法有3种,代码如下:

img.setImageResource(resId)
img.setImageBitmap(bm)
img.setImageURI(uri)

2.4 进度条

主要参数,获取最大值getMax(),设置长度progressCire.setProgress(100);

2.5 下拉按钮(Spinner)

主要是设置内容来源:

Spinner spinnerDemo=(Spinner) findViewById(R.id.spinner1);
        
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
        adapter.add("红色");
        adapter.add("蓝色");
        spinnerDemo.setAdapter(adapter);

也可以使用values文件夹下新建一个数组内容文件,例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="colors">
        <item>红色</item>
        <item>橙色</item>
        <item>黄色</item>
        <item>绿色</item>
        <item>蓝色</item>
        <item>紫色</item>
    </string-array>
</resources>

使用时,直接用R.array.colors

2.6 文本切换器(TextSwitcher)

暂时忽略,后续补充。

三 按钮事件

场景设置:点击按钮,文本框中出现hello word!

事件代码实现:

//新增一个按钮事件
        Button button=(Button) findViewById(R.id.button1);

        //设置监听

        button.setOnClickListener(new Button.OnClickListener()

        {

           public void onClick(View v) {
               
              TextView viewme=(TextView) findViewById(R.id.textView1);
        viewme.setText(“hello word!”);
           }
         

        });

四 屏幕跳转

首先要准备2个页面Activity,这里有A和B2个页面(A是主页面),然后在AndroidManifest.xml中新增一个配置(A页面已经默认存在)。

<activity android:name=".B"></activity>
因为只能有一个主启动页面,所以B中不包含
<activity
            android:name=".A"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
A中事件代码:
//跳转
        Button buttonGo=(Button) findViewById(R.id.button2);
        buttonGo.setOnClickListener(new Button.OnClickListener()
        {

           public void onClick(View v) {
              Intent intent=new Intent();
              intent.setClass(ReaBoxActivity.this, ImgShowActivity.class);
              startActivity(intent);
              finish();
           } }); }

 

五 弹出框
对话框的类为android.app.Dialog,通过android.app.AlertDialog.Builder类来建立。
还有一种简单的弹出框实现,代码如下:
import android.widget.Toast;
Toast.makeText(this,“hello”, Toast.LENGTH_SHORT).show();
 
posted @ 2012-02-04 15:28  wxj200589  阅读(2484)  评论(0编辑  收藏  举报