【攻克Android (4)】UI之基本控件

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

一、一些基本概念
二、更改App默认图标
三、一些基本控件
四、UI开发步骤
五、TextView
六、EditText
七、Button和ImageButton
八、ImageView
九、Widgets(其他控件)

附  关于在Android真机上部署






一、一些基本概念

        1. UI

        User Interface - 用户接口/用户界面
        UI是用户能看见并可交互的组件。
        分为:系统UI,自定义UI。
        UI放在View和ViewGroup里面。

        2. View和ViewGroup

        View是屏幕上的一个矩形区域,负责绘制和事件处理;它是控件(widget)的基类。
        ViewGroup是View的子类,是不可见的容器,负责管理其他View及它们的布局属性;它是布局和视图容器的基类。

【攻克Android (4)】UI之基本控件_第1张图片


【攻克Android (4)】UI之基本控件_第2张图片


【攻克Android (4)】UI之基本控件_第3张图片



二、更改App默认图标

【攻克Android (4)】UI之基本控件_第4张图片


【攻克Android (4)】UI之基本控件_第5张图片


【攻克Android (4)】UI之基本控件_第6张图片


        更改之后,就会看到App图标已变为下图所示:

【攻克Android (4)】UI之基本控件_第7张图片



三、一些基本控件

【攻克Android (4)】UI之基本控件_第8张图片



四、UI开发步骤

        1. 在 res -> values -> strings.xml 中,定义所有所需的文本 【字符串】

   
   UI  
   
   Hello world!  
   Settings  
   
   TextView  
   EditText  
   Button  
   ImageView  
   Widgets  
 


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

   
     
     
     
   
 


        3. 创建主活动里面包含的其他Activity 【界面】

        创建一个新的Activity,需要进行以下四部分内容:
        (1)创建布局文件,如 activity_text_view
        (2)创建活动类,如 TextViewActivity
        (3)创建菜单文件,如 menu_text_view
        (4)在功能清单文件 AndroidManifest.xml 中,注册该Activity

        如下是创建 TextViewActivity 的步骤:

【攻克Android (4)】UI之基本控件_第9张图片


【攻克Android (4)】UI之基本控件_第10张图片


【攻克Android (4)】UI之基本控件_第11张图片


【攻克Android (4)】UI之基本控件_第12张图片


        同样的,以同样的方法接着创建 ButtonActivity、EditTextActivity、ImageViewActivity和WidgetsActivity。

        4.填写主活动类的事件,将主活动与其他活动关联起来 【事件】

        在活动类中写事件的时候,有以下几个小步骤:
        (1)声明变量(所用到、要关联的控件都在此声明)
        (2)初始化控件
        (3)初始化适配器(将适配器关联数据)
        (4)控件与适配器关联
        (5)写控件的事件
        (6)弹出显示指定文本(看是否需要弹出显示指定文本)
        (7)指定意图(由当前界面跳转至指定界面)
        (8)启动意图

 package com.xiangdong.ui;  
   
 import android.app.Activity;  
 import android.content.Intent;  
 import android.os.Bundle;  
 import android.view.Menu;  
 import android.view.MenuItem;  
 import android.view.View;  
 import android.widget.AdapterView;  
 import android.widget.ArrayAdapter;  
 import android.widget.ListView;  
   
   
 public class MainActivity extends Activity {  
     // 1.声明变量  
     private ListView listView;  
     private String[] data = {"TextView", "EditText", "Button", "ImageView", "Widgets"};  
     private Class[] actions = {TextViewActivity.class, EditTextActivity.class,  
             ButtonActivity.class, ImageViewActivity.class,  
             WidgetActivity.class};  
   
     // 创建适配器  
     private ArrayAdapter adapter;  
   
     @Override  
     protected void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         // 加载布局文件  
         setContentView(R.layout.activity_main);  
   
         // 2.初始化控件 (加载布局文件之后才能找到 id)  
         listView = (ListView) findViewById(R.id.listView);  
         // 3.初始化适配器(关联数据)  
         // 参数:上下文,资源id显示方式,显示数据  
         adapter = new ArrayAdapter(this,  
                 android.R.layout.simple_list_item_1, data);  
         // 4.控件与适配器关联  
         listView.setAdapter(adapter);  
         // 5.控件的事件  
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
             @Override  
             public void onItemClick(AdapterView parent, View view, int position, long id) {  
                 // 6.弹出显示指定文本(类似于 JS 中 alert,但停留时间后自动隐藏)  
                 // 参数:上下文,指定显示文本,停留时间  
                 // 在内部类中显示当前活动的上下文:MainActivity.this  
                 // Toast.makeText(MainActivity.this, data[position],Toast.LENGTH_SHORT).show();  
   
                 // 7.指定意图(由当前界面跳转至指定界面)  
                 // position 是 ListView 控件选中选项的下标值  
                 Intent intent = new Intent(MainActivity.this, actions[position]);  
                 // 8.启动意图  
                 startActivity(intent);  
             }  
         });  
   
         // 6.在本类显示指定文本  
         // Toast.makeText(this, R.string.text_view,Toast.LENGTH_LONG).show();  
         // Toast.makeText(this, "asdf",Toast.LENGTH_SHORT).show();  
     }  
   
     @Override  
     public boolean onCreateOptionsMenu(Menu menu) {  
         // Inflate the menu; this adds items to the action bar if it is present.  
         getMenuInflater().inflate(R.menu.menu_main, menu);  
         return true;  
     }  
   
     @Override  
     public boolean onOptionsItemSelected(MenuItem item) {  
         // Handle action bar item clicks here. The action bar will  
         // automatically handle clicks on the Home/Up button, so long  
         // as you specify a parent activity in AndroidManifest.xml.  
         int id = item.getItemId();  
   
         //noinspection SimplifiableIfStatement  
         if (id == R.id.action_settings) {  
             return true;  
         }  
   
         return super.onOptionsItemSelected(item);  
     }  
 }


        代码说明:

        数据要显示到视图上,中间得有适配器。如下图所示。

【攻克Android (4)】UI之基本控件_第13张图片


        经过以上步骤开发之后的界面如下所示:

【攻克Android (4)】UI之基本控件_第14张图片



五、TextView

        1. TextView属性

【攻克Android (4)】UI之基本控件_第15张图片

        2.用代码实现,展示效果

【攻克Android (4)】UI之基本控件_第16张图片


        (1)在 strings.xml 中添加需要的文本

   
 普通文本  
 设置了字号,颜色及背景的文本  
 文本周围显示图片  
 自动链接及换行:\n电话:10010\nEmail:[email protected]\nURL:xiangdonglee.iteye.com  
 显示文本的方式:最大、最小行数;是否单行;是否省略;跑马灯 


        (2)在 activity_text_view.xml 布局文件中,设计布局

   
   
     
   
     
   
     
   
     
   
     
   
     
   
     
   
     
     
   
     
     
     
     
     
 



六、EditText

        1. EditText属性

【攻克Android (4)】UI之基本控件_第17张图片


        2.用代码实现,展示效果

        (1)在 strings.xml 中添加需要的文本

【攻克Android (4)】UI之基本控件_第18张图片


   
 用户名  
 密码  
 手机号  
 [email protected]  
 备注


        (2)在 activity_edit_text.xml 布局文件中,设计布局

   
   
     
   
     
   
     
   
     
 
     
 



七、Button和ImageButton

        1. 用代码实现,展示效果

【攻克Android (4)】UI之基本控件_第19张图片


        (1)在 strings.xml 中添加需要的文本

   
 Click me  
 无边框的按钮


        (2)在 activity_button.xml 布局文件中,设计布局

   
   
     
   
     
   
   



八、ImageView

        1. ImageView属性

【攻克Android (4)】UI之基本控件_第20张图片


        2.用代码实现,展示效果

【攻克Android (4)】UI之基本控件_第21张图片


        (1)在 strings.xml 中添加需要的文本

   
 Camera


        (2)在 activity_image_view.xml 布局文件中,设计布局

   
   
     
   
       
   
       
   
       
   
       
   
       
   
       
   
       
     
   
     
   
       
   
       
   
       
   
       
     
   
     

       
   
       
   
       

       
   
       
   
       
   
       
     
   
     
   
       
   
       
   
       
   
       
     
   
     
      
 



九、Widgets(其他控件)

        1. 用代码实现,展示效果

【攻克Android (4)】UI之基本控件_第22张图片


        (1)在 strings.xml 中添加需要的文本

   
 Sports  
 Read  
 Game  
 Male  
 Female  
 开关控件


        (2)在 activity_widgets.xml 布局文件中,设计布局

   
   
     
   
       
       
   
       
   
       
     
   
     
     
   
       
   
       
     
   
     
   



附  关于在Android真机上部署

【攻克Android (4)】UI之基本控件_第23张图片
  • 【攻克Android (4)】UI之基本控件_第24张图片
  • 大小: 13.9 KB
  • 【攻克Android (4)】UI之基本控件_第25张图片
  • 大小: 313.4 KB
  • 【攻克Android (4)】UI之基本控件_第26张图片
  • 大小: 263.4 KB
  • 【攻克Android (4)】UI之基本控件_第27张图片
  • 大小: 48.2 KB
  • 【攻克Android (4)】UI之基本控件_第28张图片
  • 大小: 95.4 KB
  • 【攻克Android (4)】UI之基本控件_第29张图片
  • 大小: 78.3 KB
  • 【攻克Android (4)】UI之基本控件_第30张图片
  • 大小: 82.2 KB
  • 【攻克Android (4)】UI之基本控件_第31张图片
  • 大小: 156.3 KB
  • 【攻克Android (4)】UI之基本控件_第32张图片
  • 大小: 51.7 KB
  • 【攻克Android (4)】UI之基本控件_第33张图片
  • 大小: 31.7 KB
  • 【攻克Android (4)】UI之基本控件_第34张图片
  • 大小: 72.9 KB
  • 【攻克Android (4)】UI之基本控件_第35张图片
  • 大小: 46 KB
  • 【攻克Android (4)】UI之基本控件_第36张图片
  • 大小: 17.7 KB
  • 【攻克Android (4)】UI之基本控件_第37张图片
  • 大小: 45.4 KB
  • 【攻克Android (4)】UI之基本控件_第38张图片
  • 大小: 106.7 KB
  • 【攻克Android (4)】UI之基本控件_第39张图片
  • 大小: 231.8 KB
  • 【攻克Android (4)】UI之基本控件_第40张图片
  • 大小: 52.9 KB
  • 【攻克Android (4)】UI之基本控件_第41张图片
  • 大小: 198.8 KB
  • 【攻克Android (4)】UI之基本控件_第42张图片
  • 大小: 318.6 KB
  • 【攻克Android (4)】UI之基本控件_第43张图片
  • 大小: 172.4 KB
  • 【攻克Android (4)】UI之基本控件_第44张图片
  • 大小: 73.8 KB
  • 【攻克Android (4)】UI之基本控件_第45张图片
  • 大小: 65 KB
  • 【攻克Android (4)】UI之基本控件_第46张图片
  • 大小: 135.7 KB
  • 查看图片附件

你可能感兴趣的:(ui,view,基本控件)