android--UI组件总结

安卓开发——UI组件之弹出组件 Toast Toast是一个消息提示组件 设置显示的位置 自定义显示内容(例如:添加一张图片) 简单封装 package com.example.zzm.helloworld; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View 阅读详情

android的组件基本都按如下方法生成:

1、生成一个组件对象:通过xml文件或在代码中生成

2、对组件进行设置

3、添加事件监听器

View:

View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。

可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。

 

  1. package fy.test;     
  2.     
  3. import android.app.Activity;     
  4. import android.os.Bundle;     
  5. import android.view.View;     
  6. import android.widget.Button;     
  7.     
  8. public class Main extends Activity {     
  9.     /** Called when the activity is first created. */    
  10.     @Override    
  11.     public void onCreate(Bundle savedInstanceState) {     
  12.         super.onCreate(savedInstanceState);     
  13.         setContentView(R.layout.main);     
  14.         Button button1 = (Button) findViewById(R.id.Button01);     
  15.         Button button2 = (Button) findViewById(R.id.Button02);     
  16.         Button button3 = (Button) findViewById(R.id.Button03);     
  17.         Button button4 = (Button) findViewById(R.id.Button04);     
  18.         MyListener listener = new MyListener();     
  19.         button1.setTag(1);     
  20.         button1.setOnClickListener(listener);     
  21.         button2.setTag(2);     
  22.         button2.setOnClickListener(listener);     
  23.         button3.setTag(3);     
  24.         button3.setOnClickListener(listener);     
  25.         button4.setTag(4);     
  26.         button4.setOnClickListener(listener);     
  27.     }     
  28.     
  29.     public class MyListener implements View.OnClickListener {     
  30.     
  31.         @Override    
  32.         public void onClick(View v) {     
  33.             int tag = (Integer) v.getTag();     
  34.             switch (tag) {     
  35.             case 1:     
  36.                 System.out.println("button1 click");     
  37.                 break;     
  38.             case 2:     
  39.                 System.out.println("button2 click");     
  40.                 break;     
  41.             case 3:     
  42.                 System.out.println("button3 click");     
  43.                 break;     
  44.             case 4:     
  45.                 System.out.println("button4 click");     
  46.                 break;     
  47.             }     
  48.         }     
  49.     
  50.     }     
  51.     
  52. }    

 

main.xml

 

  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     >    
  7. <TextView       
  8.     android:layout_width="fill_parent"      
  9.     android:layout_height="wrap_content"      
  10.     android:text="@string/hello"    
  11.     />    
  12.     <Button      
  13.     android:text="Button01"      
  14.     android:id="@+id/Button01"      
  15.     android:layout_width="wrap_content"      
  16.     android:layout_height="wrap_content">    
  17.     </Button>    
  18.     <Button      
  19.         android:text="Button02"      
  20.         android:id="@+id/Button02"      
  21.         android:layout_width="wrap_content"      
  22.         android:layout_height="wrap_content">    
  23.     </Button>    
  24.     <Button      
  25.         android:text="Button03"      
  26.         android:id="@+id/Button03"      
  27.         android:layout_width="wrap_content"      
  28.         android:layout_height="wrap_content">    
  29.     </Button>    
  30.     <Button      
  31.         android:text="Button04"      
  32.         android:id="@+id/Button04"      
  33.         android:layout_width="wrap_content"      
  34.         android:layout_height="wrap_content">    
  35.     </Button>    
  36. </LinearLayout>  
  37.   
  38. 本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/fenghome/archive/2010/06/20/5681338.aspx  

 

ListView:

1、生成ListView对象:可以在Layout中声明,也可以在代码中声明

2、设置ListView对象的各个属性。主要是Adatper

3、设置监听器

Adapter:

Adapter,可以理解为一种pb中的结果集(数据源+界面):


ArrayAdapter数据源:一维数组,界面:系统提供或自定义 

数据源:数组 :String[] names = {"张三","李四"};

界面:

      系统提供多种:

            android.R.Layout.simple_list_item_1

            android.R.Layout.simple_list_item_2

            android.R.Layout.simple_list_item_checked

            android.R.Layout.simple_list_item_multiple_choice

            android.R.Layout.simple_list_item_single_choice

           

     自定义:  是一个layout

 绑定:ArrayAdapther   adapter = new ArrayAdapter<String>(this,界面布局,数据源);

SimpleAdapter 数据源:多维数据 界面:系统提供多种或自定义

     数据源:Map负责一行的每列,ArrayList负责所有行

     界面:一个Layout或程序指定。

SimpleCursorAdapter 数据源:Cursor 界面:系统提供多种或自定义

BaseAdapter:自定义数据源与界面的关联方式,自定义行界面各组件的时间响应。

     框架流程:

     1、Activity显示主布局,发现包含ListView就绘制ListView

     2、ListView绘制时会查找自己身上的Adapter,调用Adapter的getSize()取得行号,并逐行调用getView()取得“行view”并将其画出来。

     3、Adapter负责将数据源与行界面相关联。

数据源:自定义

界面:自定义

       先生成行界面

       生成需要显示的数据

       生成一个BaseAdapter的子类,

                  实现getCount() 方法:返回数据源的行数

                  实现getView()方法:设置数据与行View关联,设置组件事件响应。

 

  1. package fy.test;     
  2.     
  3. import java.util.ArrayList;     
  4. import java.util.HashMap;     
  5. import java.util.Map;     
  6.     
  7. import android.app.Activity;     
  8. import android.content.Context;     
  9. import android.os.Bundle;     
  10. import android.view.LayoutInflater;     
  11. import android.view.View;     
  12. import android.view.ViewGroup;     
  13. import android.view.View.OnClickListener;     
  14. import android.widget.BaseAdapter;     
  15. import android.widget.Button;     
  16. import android.widget.ListView;     
  17. import android.widget.TextView;     
  18.     
  19. public class HellowListView extends Activity {     
  20.     private ArrayList<Map<String, Object>> arrayList = new ArrayList<Map<String, Object>>();     
  21.     private Map<String, Object> map;     
  22.     
  23.     /** Called when the activity is first created. */    
  24.     @Override    
  25.     public void onCreate(Bundle savedInstanceState) {     
  26.         super.onCreate(savedInstanceState);     
  27.         setContentView(R.layout.main);     
  28.         initDate();     
  29.         MyAdapter adapter = new MyAdapter(this);     
  30.         ListView list = (ListView) findViewById(R.id.ListView01);     
  31.         list.setAdapter(adapter);     
  32.     }     
  33.     
  34.     private void initDate() {     
  35.         map = new HashMap<String, Object>();     
  36.         map.put("姓名", "张三");     
  37.         map.put("电话", "1132434343333");     
  38.         arrayList.add(map);     
  39.         map.put("姓名", "张三");     
  40.         map.put("电话", "1132434343333");     
  41.         arrayList.add(map);     
  42.         map.put("姓名", "张三");     
  43.         map.put("电话", "1132434343333");     
  44.         arrayList.add(map);     
  45.     }     
  46.     
  47.     public class MyAdapter extends BaseAdapter {     
  48.         private LayoutInflater inflater;     
  49.     
  50.         public MyAdapter(Context c) {     
  51.             this.inflater = LayoutInflater.from(c);     
  52.         }     
  53.     
  54.         @Override    
  55.         public int getCount() {     
  56.             return arrayList.size();     
  57.         }     
  58.     
  59.         @Override    
  60.         public Object getItem(int arg0) {     
  61.             // TODO Auto-generated method stub     
  62.             return null;     
  63.         }     
  64.     
  65.         @Override    
  66.         public long getItemId(int arg0) {     
  67.             // TODO Auto-generated method stub     
  68.             return 0;     
  69.         }     
  70.     
  71.         /**   
  72.          * 设置数据源与行View关联   
  73.          * 设置行中个组件的事件响应   
  74.          * 返回设置好的View   
  75.          */    
  76.         @Override    
  77.         public View getView(int arg0, View arg1, ViewGroup arg2) {     
  78.             //取得要显示的行View     
  79.             View myView = inflater.inflate(R.layout.list_item, null);     
  80.             TextView name = (TextView) myView.findViewById(R.id.TextView01);     
  81.             TextView phoneNum = (TextView) myView.findViewById(R.id.TextView02);     
  82.             Button button = (Button) myView.findViewById(R.id.Button01);     
  83.             //让行View的每个组件与数据源相关联     
  84.             name.setText((String) arrayList.get(arg0).get("姓名"));     
  85.             phoneNum.setText((String) arrayList.get(arg0).get("电话"));     
  86.             final String note = "按下的是" + arg0;     
  87.             button.setFocusable(false);     
  88.             //添加事件响应     
  89.             button.setOnClickListener(new OnClickListener() {     
  90.                 @Override    
  91.                 public void onClick(View v) {     
  92.                     // TODO Auto-generated method stub     
  93.                     System.out.println(note);     
  94.                 }     
  95.             });     
  96.             return myView;     
  97.         }     
  98.     }     
  99.     
  100. }    

 

main.xml

 

  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     >    
  7. <TextView       
  8.     android:layout_width="fill_parent"      
  9.     android:layout_height="wrap_content"      
  10.     android:text="@string/hello"    
  11.     />    
  12.     <EditText      
  13.         android:text="aaaaaaaa"      
  14.         android:id="@+id/EditText01"      
  15.         android:layout_width="wrap_content"      
  16.         android:layout_height="wrap_content">    
  17.     </EditText>    
  18.     <ListView      
  19.         android:id="@+id/ListView01"      
  20.         android:layout_height="fill_parent"      
  21.         android:layout_width="fill_parent">    
  22.     </ListView>    
  23. </LinearLayout>    

 

sime_list.x ml

 

  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout      
  3.     android:id="@+id/LinearLayout01"    
  4.     android:layout_width="fill_parent"      
  5.     android:layout_height="fill_parent"    
  6.     xmlns:android="http://schemas.android.com/apk/res/android"    
  7.     android:orientation="horizontal">    
  8.     <TextView      
  9.         android:id="@+id/TextView01"      
  10.         android:layout_width="wrap_content"    
  11.         android:layout_height="wrap_content">    
  12.         </TextView>    
  13.     <TextView      
  14.         android:id="@+id/TextView02"    
  15.         android:layout_width="wrap_content"      
  16.         android:layout_height="wrap_content">    
  17.         </TextView>    
  18.     <Button      
  19.         android:id="@+id/Button01"      
  20.         android:layout_width="wrap_content"      
  21.         android:layout_height="wrap_content" android:text="编辑">    
  22.     </Button>    
  23. </LinearLayout>    
  24.   
  25. 本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/fenghome/archive/2010/06/19/5680457.aspx  

 

Android高级UI组件 Android高级UI组件 进度条类组件 图像类组件 列表类组件 通用组件 一、进度条 用ProgressBar来标记。 1.Andorid提供了水平进度条、圆形进度条,不加设置默认为圆形进度条。 想展示实时进度:使用水平进度条 只想显示在加载:圆形进度条 2.属性: ①style来修改进度条的样式:特别注意无前缀andorid style的属性值: ?android:attr/progres... 阅读详情

相关推荐

安卓重要UI组件之 Fragment

安卓重要UI组件之 Fragment

安卓开发&音视频开发 7428

Android中常用UI组件总结

UI组件之布局管理器 A.     线性布局(LinearLayout):控制各组件横向排列,到头之后,剩下的组件将不会显示出来。常用属性       1.      android:baselineAligned(boolean):该属性布局为false将阻止该布局管理器与它的子元素基线对齐。相关方法setBaselineAligned(boolean)。       2.    

spanklebobo的博客 3370

Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)...

当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易。其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件。 一:Android用户界面布局管理 Android系统按照MVC(模型(model)-视图(view)-控制器(controller))设计模式将应用程序的界面设计与功能控制设计分离,类似于...

weixin_30886233的博客 5970

Android开发之高级UI组件(个人学习笔记)

5.高级UI组件 5.1进度条类组件 5.1.1进度条<ProgressBar/> (1)分为圆形和长条形,默认是圆形,通过设置style属性值来显示样式。 如下图: (2)属性:android:progress="50" 当前进度android:max="100"进度条最大值style android:layout_width android:layout_height (3)根据耗时操作实时改变 例子:前端代码: <ProgressBar...

林伊的博客 703

Simenuit UI 是完全语义前端界面开发 v4.1.8

Simenuit UI 是完全语义前端界面开发 v4.1.8Simenuit UI 是完全语义前端界面开发 v4.1.8

LabVIEW与MySQL的连接:软件下载与安装至UDL文件创建全过程

依据个人经验编辑的十分完备的使用教程

tiaowudexiaoyu的博客 5574

android 界面组件,安卓开发学习周第三篇——Android中的UI组件

原标题:安卓开发学习周第三篇——Android中的UI组件在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的。View是绘制在屏幕上的用户能与之交互的一个对象。而ViewGroup则是一个用于存放其他View(和ViewGroup)对象的布局容器!Android为我们提供了一个View和ViewGroup子类的集合,集合中提供了一些常用的输入控件(比如按钮...

weixin_30884379的博客 491

Allegro老鸟的20年效率秘籍:用YepEda Skill脚本实现PCB设计全流程自动化

本文分享了Allegro资深工程师20年效率秘籍,通过YepEda Skill脚本实现PCB设计全流程自动化。从封装建库到规则配置,再到DFM审核,YepEda Skill大幅提升设计效率,每天节省至少4小时重复劳动。文章详细解析了自动化工具链的核心功能,并提供了实战技巧和量化对比数据。

weixin_42546392的博客 239

Android快速入门-----用户界面(上)UI组件

一、理论概述 1、理解UI (1)UI的定义 全称user interface,意为:用户界面。 UI由view和ViewGroup组成 View类是所有视图(包括ViewGroup)的根基类 View在屏幕上占据一片矩形区域,并会在上面进行内容绘制. ViewGroup包含一些View或ViewGroup,用于控制子View的布局 (2)View的API结构(常用的一般视图) (3)View的API结构(常用的布局) (4)UI的组成 2、UI事件 (1)UI事件的概念 (2)使用UI事件 3

程序员猫爪 1364

运算放大器多谐振荡器设计实战:从施密特触发器到波形生成

本文详细介绍了运算放大器在多谐振荡器设计中的实战应用,涵盖施密特触发器的迟滞比较原理、非稳态振荡器的自激机制以及单稳态和双稳态电路的设计技巧。通过具体案例和参数计算,帮助工程师掌握波形生成与信号处理的核心技术,提升电路设计效率与稳定性。

pz89012345的博客 217

ETL数据集成案例

一个典型的ETL数据集成案例是将多个来源的数据合并成一个数据集。假设有一个公司,该公司使用一些不同的系统来存储不同部门的数据,例如销售数据存储在一个CRM系统中,财务数据存储在一个ERP系统中,人力资源数据存储在一个HR系统中。为了更好地进行报告和分析,该公司决定将所有这些数据集成到一个数据仓库中。以下是实现这一目标的ETL过程的步骤:提取(Extract):首先,需要从每个系统中提取所需的数据。每个系统可能有不同的数据格式和结构,因此需要编写不同的提取程序或查询来提取数据。

runqu的博客 948

android用户界面是通过组件,第四章Android用户界面

第四章Android用户界面第四章 Android用户界面P3Android系统为我们提供了丰富的可视化用户界面组件,包括菜单、对话框、按钮、下列列表等。Android系统借用了Java里的UI设计思想,包括事件响应机制和布局管理,所以有过Java UI开发经验的学生,学些这一章会很轻松。Android系统中所有UI类都是建立在View和ViewGroup这两个类的基础之上的。所有View的子类称...

weixin_34388311的博客 198

电子设计实战:用MOS管手把手搭建D触发器电路(含时序分析避坑指南)

本文详细介绍了如何使用MOS管从零开始搭建D触发器电路,重点解析了建立时间和保持时间等关键时序参数对电路稳定性的影响。通过实测波形分析和避坑指南,帮助电子工程师掌握D触发器的实际搭建技巧与优化方法,提升数字电路设计的可靠性。

x1y2z的博客 1163

Android安卓——UI组件

Android用户界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型。 提供了处理用户输入的控制器(Controller)、显示用户界面和图像的视图(View),以及保存数据和代码的模型(Model) 基本界面控件1、简介 Android系统的界面控件分为定制控件和系统控件 定制控件是用户独立开发的控件,或通过继承并修改系统控件后

Deniece_X的博客 694

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 485

华为OD机试双机位C卷-员工派遣(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【员工派遣】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试- 员工派遣,华为OD机考 - 员工派遣。

qq_45776114的博客 1671

Android开源介绍-UI组件

终端的开发,UI的重要性不言而喻,如何快速开发出优雅漂亮的UI,android的一些开源UI组件,提供了很好的参考。 参考: oschina Android UI组件  最火的Android开源项目(一) 最火的Android开源项目(二) 最火的Android开源项目(完结篇) 1. ActionBarSherlock 在3.0之前使用Actio

aoshiwenrou的专栏 952

LVGL(lv_table)

LVGL中的lv_table是一个轻量级表格控件,用于显示行列式文本数据。它支持设置单元格内容/样式、行列调整、事件响应等基础功能,适用于参数配置、数据展示等场景。通过API可快速创建表格,设置行列数、填充数据,并自定义对齐方式与样式。但需注意默认无滚动条、行数限制等问题。该控件适合简单表格需求,复杂交互需结合自定义事件处理。

m0_49476241的博客 1264

安卓自定义UI组件开发流程

开发安卓自定义UI组件的流程大致可以分为以下几个步骤:确定需求和设计:创建自定义组件类:定义自定义属性:处理自定义属性:测量和布局:绘制组件:处理交互:优化性能:测试组件:文档和示例:集成到项目中:通过以上步骤,你可以创建出功能丰富、外观独特的自定义UI组件,以满足你的应用开发需求。要自己绘制 UI 组件,你需要了解 Android 中自定义 View 的机制。以下是实现自定义绘制 UI 组件的基本步骤:创建自定义 View 类: 创建一个新的 Java 类,继承自 或其他相关的基类(如 用于复杂动画或

Yimi-依米 的博客 1697

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android常用的UI组件

近来读完《疯狂Android讲义》一书,也将其中的案例都码了一遍。很厚的一本书,就像一本字典,涵盖了大部分的android基础知识。现对里面一些比较不错的内容做出总结。本篇对常用UI组件做出总结,只做总结,不码代码。 第1组UI组件:布局管理器: 所有布局管理器都是ViewGroup的子类,都可作为容器类使用,因其继承View,所以可嵌套 五大布局:线性、表格、帧布局、相对、网格、绝对布

haishan_ 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android 基本UI组件

基本UI组件 UI组件都是作为View的子类,因此天然继承了View的属性。同时,在不同布局(布局其实就是一个ViewGroup)下,可以对View设置其特有属性。 文章目录基本UI组件1. 文本框 TextView2. 输入框 EidtText3. 按钮 Button4. 图片按钮 ImageButton5. 单选框 RadioButton6. 多选框 CheckBox7. 计时器 Chronometer8. Toast 1. 文本框 TextView TextView,显示文本。 用法举例: <L

Teolih的博客 1590

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android开发必备!常用热门UI组件库使用指南

Android UI组件库是为了简化界面开发而创建的可重用组件集合,它们提供了标准化的UI元素和布局模式,帮助开发者快速构建美观、一致的应用程序界面。:Jetpack Compose是Android官方推出的现代声明式UI工具包,彻底改变了Android UI的开发方式,提供了更简洁、更直观的界面构建体验。本文将为大家介绍当前最受开发人员欢迎的常用的Android UI组件库,并提供详细的使用指南和兼容性分析,助你在下一个项目中做出明智的选择。范式,通过组合函数构建UI,避免了传统命令式UI的繁琐。

Android技术之家 1753

android原生组件,RN原生的安卓UI组件

这里有一大堆的原生组件可以用,一些是平台自带的,另一些是第三方库的,而更多的正在其他项目中被使用。RN包装了大部分核心平台组件,但不是所有。幸运的是可以很简单地完美集成现有的原生组件到RN中ImageView案例这个案例的目标是实现在JS中使用imageView。RN中对安卓原生组件的创建和管理都是通过继承ViewManager或SimpleViewManager。SimpleViewManage...

weixin_29340419的博客 571

Android中 UI界面的常用组件

文章目录Button组件TextView组件EditText组件ImageView组件AlertDialog组件ProgressBar组件总结:本文介绍了很多好玩有有用的组件。主要为读者提供一些组件的模板,并未给出完整可运行的project。具体的参数设计以及应用,还需要读者再参考其他资料。 组件的应用大同小异,因而我们主要以展示代码为主,以方便读者直接复制粘贴应用~~~~ Button组件 首先在UI界面,我们要定义Button的展示效果 <?xml version="1.0" encoding="

qq_44627776的博客 2711
上一篇: 画九宫格Draw 9-patch
下一篇: 关于ListView 和Adapter一些事
ghd2000
博客等级 码龄18年 78粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值