UI开发第1篇——自定义列表

编辑器加载中...

MainActivity.classpublic class MainActivity extends Activity {    @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);             setContentView(R.layout.main);  //绑定Layout里面的ListView             ListView list = (ListView) findViewById(R.id.ListView01);  

//生成动态数组,加入数据             ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();  for(int i=0;i<5;i++)             {if(i==0){                   HashMap<String, Object> map = new HashMap<String, Object>();                     map.put("ItemImage", R.drawable.checked);//图像资源的ID                     map.put("ItemTitle", "个人信息");                     map.put("LastImage", R.drawable.lastimage);                     listItem.add(map);                }else if(i==1){                   HashMap<String, Object> map = new HashMap<String, Object>();                     map.put("ItemImage", R.drawable.c);//图像资源的ID                     map.put("ItemTitle", "修改密码");                     map.put("LastImage", R.drawable.lastimage);                     listItem.add(map);                }else if(i==2){                   HashMap<String, Object> map = new HashMap<String, Object>();                     map.put("ItemImage", R.drawable.d);//图像资源的ID                     map.put("ItemTitle", "网络设置");                     map.put("LastImage", R.drawable.lastimage);                     listItem.add(map);                }else if(i==3){                   HashMap<String, Object> map = new HashMap<String, Object>();                     map.put("ItemImage", R.drawable.d);//图像资源的ID                     map.put("ItemTitle", "打印设置");                     map.put("LastImage", R.drawable.lastimage);                     listItem.add(map);                }else{                   HashMap<String, Object> map = new HashMap<String, Object>();                     map.put("ItemImage", R.drawable.e);//图像资源的ID                     map.put("ItemTitle", "返回");                     map.put("LastImage", R.drawable.lastimage);                     listItem.add(map);                }

           }  //生成适配器的Item和动态数组对应的元素             SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,// 数据源                  R.layout.list_items,//ListItem的XML实现  //动态数组与ImageItem对应的子项                         new String[] {"ItemImage","ItemTitle", "LastImage"},   //ImageItem的XML文件里面的一个ImageView,两个TextView ID                 new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.last}             );  

//添加并且显示             list.setAdapter(listItemAdapter);  

//添加点击             list.setOnItemClickListener(new OnItemClickListener() {  

               @Override  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  long arg3) {                     setTitle("点击第"+arg2+"个项目");  if(arg2 == 4){                       MainActivity.this.finish();                   }               }             });  

//添加长按点击             list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {  

               @Override  public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {                     menu.setHeaderTitle("长按菜单-ContextMenu");                        menu.add(0, 0, 0, "弹出长按菜单0");                     menu.add(0, 1, 0, "弹出长按菜单1");                    }

           });          }  

//长按菜单响应函数         @Override  public boolean onContextItemSelected(MenuItem item) {             setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");   return super.onContextItemSelected(item);         }}

main.xml<?xml version="1.0" encoding="utf-8"?>  <LinearLayout   android:id="@+id/LinearLayout01"       android:layout_width="fill_parent"       android:layout_height="fill_parent"     android:background="#ffffff"      xmlns:android="http://schemas.android.com/apk/res/android">  <ListView android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:id="@+id/ListView01"            android:divider="@drawable/divider_color"         android:dividerHeight="3dip"         android:cacheColorHint="#00000000"/>  </LinearLayout> 

list_item.xml<?xml version="1.0" encoding="utf-8"?>  <RelativeLayout   android:id="@+id/RelativeLayout01"       android:layout_width="fill_parent"       xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_height="wrap_content"       android:paddingBottom="4dip"       android:paddingLeft="12dip"      android:paddingRight="12dip"    android:background="@drawable/list_bg">  <ImageView   android:paddingTop="12dip"      android:layout_alignParentLeft="true"    android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/ItemImage"  />   <TextView   android:text="TextView01"       android:layout_height="wrap_content"       android:layout_marginTop="30px"    android:textSize="20dip"       android:paddingLeft="12dip"     android:textColor="#000000"    android:layout_width="fill_parent"       android:id="@+id/ItemTitle"      android:layout_toRightOf="@+id/ItemImage"/>  <ImageView   android:paddingTop="12dip"      android:layout_marginTop="20px"    android:layout_alignParentRight="true"    android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/last"  />  </RelativeLayout>  

UI开发第2篇——实现像handcent sms或者chomp sms那样的气泡短信样

listview:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@android:color/white"><ListView             android:layout_width="fill_parent"                android:layout_height="fill_parent"                 android:divider="@null"                android:dividerHeight="0dip"                android:cacheColorHint="#00000000"                android:listSelector="@drawable/list_item_style"                android:id="@+id/itemlist" /></LinearLayout>

(2)ListView item<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="wrap_content"  android:layout_height="wrap_content">

<TextView android:id="@+id/TextView01"        android:layout_width="wrap_content"        android:layout_height="wrap_content"       android:textColor="@android:color/black"             android:background="@drawable/bg"></TextView></LinearLayout>

(3)java:

public class HandcentList extends Activity {/** Called when the activity is first created. */        ListView itemlist = null;        List<Map<String, Object>> list;

final String[] str={"A","B","C","D","E","F"};/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);                setContentView(R.layout.main);                itemlist = (ListView) findViewById(R.id.itemlist);                refreshListItems();        }private void refreshListItems() {                list = buildListForSimpleAdapter();                SimpleAdapter notes = new SimpleAdapter(this, list, R.layout.item,new String[] { "str" }, new int[] { R.id.TextView01,});                itemlist.setAdapter(notes);                itemlist.setSelection(0);        }private List<Map<String, Object>> buildListForSimpleAdapter() {                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(2);// Build a map for the attributes                Map<String, Object> map = new HashMap<String, Object>();                map.put("str", "呵呵呵呵呵");                list.add(map);

                map = new HashMap<String, Object>();                map.put("str", "呵呵");                list.add(map);

                map = new HashMap<String, Object>();                map.put("str", "呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵");                list.add(map);

                map = new HashMap<String, Object>();                map.put("str", "呵呵呵呵呵呵");                list.add(map);

                map = new HashMap<String, Object>();                map.put("str", "呵呵呵呵呵呵呵呵呵呵\n呵呵呵呵\n呵呵\n呵呵");                list.add(map);

                map = new HashMap<String, Object>();                map.put("str", "呵呵呵呵呵呵呵呵呵呵呵呵呵呵\n呵呵呵呵");                list.add(map);return list;        }}

UI开发第二篇——多级列表(ExpandableListView)

ExListView.javapackage cn.nedu.exlistview;

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.AbsListView;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;

public class ExListView extends Activity {private static final String G_TEXT = "g_text";

private static final String C_TEXT1 = "c_text1";private static final String C_TEXT2 = "c_text1";

    List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();    List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();

    ExAdapter adapter;    ExpandableListView exList;/** Called when the activity is first created. */    @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        setContentView(R.layout.main);

for (int i = 0; i < 5; i++) {            Map<String, String> curGroupMap = new HashMap<String, String>();            groupData.add(curGroupMap);            curGroupMap.put(G_TEXT, "Group " + i);

            List<Map<String, String>> children = new ArrayList<Map<String, String>>();for (int j = 0; j < 5; j++) {                Map<String, String> curChildMap = new HashMap<String, String>();                children.add(curChildMap);                curChildMap.put(C_TEXT1, "Child " + j);                curChildMap.put(C_TEXT2, "Child " + j);            }            childData.add(children);        }

        adapter=new ExAdapter(ExListView.this);        exList = (ExpandableListView) findViewById(R.id.list);        exList.setAdapter(adapter);        exList.setGroupIndicator(null);        exList.setDivider(null);    }

class ExAdapter extends BaseExpandableListAdapter {        ExListView exlistview;

public ExAdapter(ExListView elv) {super();            exlistview = elv;        }public View getGroupView(int groupPosition, boolean isExpanded,                View convertView, ViewGroup parent) {

            View view = convertView;if (view == null) {                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);                view = inflater.inflate(R.layout.member_listview, null);            }

                TextView title = (TextView) view.findViewById(R.id.content_001);                title.setText(getGroup(groupPosition).toString());

                ImageView image=(ImageView) view.findViewById(R.id.tubiao);if(isExpanded)                    image.setBackgroundResource(R.drawable.btn_browser2);else image.setBackgroundResource(R.drawable.btn_browser);

return view;        }

public long getGroupId(int groupPosition) {return groupPosition;        }

public Object getGroup(int groupPosition) {return groupData.get(groupPosition).get(G_TEXT).toString();        }

public int getGroupCount() {return groupData.size();

        }//**************************************        public View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {            View view = convertView;if (view == null) {                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);                view = inflater.inflate(R.layout.member_childitem, null);                }final TextView title = (TextView) view.findViewById(R.id.child_text);                    title.setText(childData.get(groupPosition).get(childPosition).get(C_TEXT1).toString());            final TextView title2 = (TextView) view.findViewById(R.id.child_text2);                    title2.setText(childData.get(groupPosition).get(childPosition).get(C_TEXT2).toString());

return view;        }

public long getChildId(int groupPosition, int childPosition) {return childPosition;        }

public Object getChild(int groupPosition, int childPosition) {return childData.get(groupPosition).get(childPosition).get(C_TEXT1).toString();        }

public int getChildrenCount(int groupPosition) {return childData.get(groupPosition).size();        }//**************************************        public boolean hasStableIds() {return true;        }

public boolean isChildSelectable(int groupPosition, int childPosition) {return true;        }

    }}

main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="fill_parent"    android:layout_height="fill_parent" android:background="@drawable/default_bg">

<ExpandableListView android:id="@+id/list"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_alignParentLeft="true"/>

</RelativeLayout>

member_childitem.xml<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:id="@+id/childlayout"  android:orientation="horizontal"><ImageView android:id="@+id/child_image"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                android:background="@drawable/child_image"                android:paddingTop="10dip"                android:layout_marginLeft="40dip"></ImageView><LinearLayoutandroid:layout_width="wrap_content"  android:layout_height="wrap_content"  android:orientation="vertical"><TextView android:text=""                android:id="@+id/child_text"                android:layout_width="wrap_content"               android:layout_height="wrap_content"               android:gravity="center_vertical"               android:textSize="16dip"               android:layout_gravity="center_vertical"></TextView><TextView android:text=""                android:id="@+id/child_text2"                android:layout_width="wrap_content"               android:layout_height="wrap_content"               android:textSize="12dip"               android:gravity="center_vertical"               android:layout_gravity="center_vertical"></TextView></LinearLayout></LinearLayout>

member_listview.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="40dip"     android:layout_gravity="center_horizontal">

<LinearLayout android:orientation="horizontal"                   android:layout_width="fill_parent"                  android:layout_height="40dip"                   android:id="@+id/layout_013"><ImageView android:id="@+id/ImageView01"                   android:layout_width="wrap_content"                   android:layout_height="wrap_content"                  android:gravity="center_vertical"                  android:paddingTop="10dip"                  android:src="@drawable/user_group"></ImageView>    <RelativeLayout android:id="@+id/layout_013"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"><TextView android:id="@+id/content_001"                   android:textSize="26px"                  android:layout_width="wrap_content"                   android:layout_height="fill_parent"                  android:textColor="#FFFFFF"                   android:gravity="center_vertical"                  android:paddingLeft="10px"                   android:layout_gravity="center_vertical"></TextView><ImageView android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:id="@+id/tubiao"                 android:layout_alignParentRight="true"></ImageView></RelativeLayout>          </LinearLayout>

<!--    <RelativeLayout android:id="@+id/layout_013"                 android:layout_width="fill_parent"                 android:layout_height="fill_parent">       <ImageView android:id="@+id/ImageView01"                   android:layout_width="wrap_content"                   android:layout_height="wrap_content"                  android:src="@drawable/icon"></ImageView>       <TextView android:id="@+id/content_001"                  android:text="@+id/TextView01"                  android:layout_width="wrap_content"                  android:layout_toRightOf="@+id/ImageView01"                  android:layout_height="wrap_content"></TextView>      <ImageView android:layout_width="wrap_content"                  android:layout_toRightOf="@+id/content_001"                  android:layout_height="wrap_content"                  android:id="@+id/tubiao"></ImageView>   </RelativeLayout>--></LinearLayout>

转载于:https://www.cnblogs.com/liushang0419/archive/2011/07/20/2111876.html

Android UI 小结相关推荐

  1. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

    作者:泥沙砖瓦浆木匠 网站:http://blog.csdn.net/jeffli1993 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 36523458 ...

  2. Android 系统性能优化(34)---Android UI 性能优化

    Android官网 Slow rendering:个人觉得非常有价值,比如指出 对象分配.垃圾回收(GC).线程调度以及Binder调用 是Android系统中常见的卡顿原因,更重要的是给出了定位和解 ...

  3. Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...

  4. Android UI滑动加载源码

    2019独角兽企业重金招聘Python工程师标准>>> android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall ...

  5. android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程

    我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...

  6. android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I

    Android 的官方开发者博客发了一份幻灯片,介绍了一些 Android UI 设计的小贴士,Roger 在这里以看图说话的形式发出来,有兴趣的读者就继续往下翻吧.整个 PPT 共分5个部分,Par ...

  7. 【Android UI】图片 + 文字展示by SpannableStringBuilder

    起源 图片和文字混合展示,比如这么个需求,需要在每段文字的左边要有一个小圆点,(小圆点符号在android系统中并不支持). 先用TextView的setDrawableLeft, 嗯,达到要求,那么 ...

  8. Wiew 像写 Android UI 一样写小游戏布局

    Wiew 项目地址: https://github.com/onlynight/Wiew 简易微信小游戏view系统以及touch系统.你可以想写Android UI一样写界面布局,处理点击事件. 预 ...

  9. 使用XML声明自定义Android UI元素

    如何使用XML声明Android UI元素? #1楼 Google似乎更新了其开发者页面,并在那里添加了各种培训. 其中一个处理自定义视图的创建,可以在这里找到 #2楼 除了大多数投票的答案. obt ...

最新文章

  1. 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级
  2. MyEclipse 常用设置和操作方法
  3. 数据结构和算法-链表
  4. Nginx的rewrite内容介绍
  5. YOUR GUIDE TO Lowering YourCholesterol With TLC学习笔记(暂时没有完成)
  6. angular ng-zorro 用组件自身方的法来重置表单校验
  7. android 九宫格封装,Android 九宫格布局
  8. 程序员们记得还是八五年PC登陆我国时候的事?
  9. 香橼做空跟谁学发第三枪 跟谁学股价盘后下跌1.37%
  10. 分治,递归,贪心算法,动态规划的关系
  11. java多线程回顾1:线程的概念与创建
  12. 怎么隐藏电脑桌面计算机,怎么隐藏电脑桌面软件
  13. sqli-labs(28-28a)
  14. WordPress评论摘要标签:comment_excerpt
  15. 腾讯云轻量应用服务器下使用RPM包方式安装GreatSQL单主环境
  16. click是哪个键 wheel_Click是什么意思?键盘上的Click键在哪里?
  17. 动态规划-泰波那契序列
  18. uWSGI学习笔记3——使用uWSGI部署Flask应用
  19. 【老九学堂】【C++】编码命名规范
  20. P014魔改8G显存

热门文章

  1. c++类型形参的实参的受限转换
  2. Android用户界面
  3. 用户体验设计答疑对话(半吊子和纯外行
  4. 突然不能访问服务器未响应,windows 访问不服务器未响应
  5. (47)FPGA指数运算符(V代码实现)
  6. ZYNQ PS端输出无效时钟供PL使用
  7. 7 SystemVerilog语言编写UART接收
  8. 纯英文换行的css,利用CSS实现纯英文数字自动换行
  9. 阿狸心形表白html,2013qq情侣分组心形一对 心心相印的地久天长
  10. 22. GD32F103C8T6入门教程-RTC的时间设置、读取日历转换