zoukankan      html  css  js  c++  java
  • 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();
     
  • 相关阅读:
    这种人就是傻逼
    WinDBG + VMWare 双机调试
    最近我遇到了一个代码上的问题
    GITHUB,Fork别人的代码,然后更新的问题
    又半个月没写了,最近忙,真的忙,在考虑换工作的问题
    最近在弄clamav,这里把clamav的编译方法弄一下吧
    基于seay代码,加了个小功能
    CTF:第七题
    CTF:第六题
    Python str拼接bytes
  • 原文地址:https://www.cnblogs.com/wxj200589/p/2338032.html
Copyright © 2011-2022 走看看