Android UI 小结
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 小结相关推荐
- Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
作者:泥沙砖瓦浆木匠 网站:http://blog.csdn.net/jeffli1993 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 36523458 ...
- Android 系统性能优化(34)---Android UI 性能优化
Android官网 Slow rendering:个人觉得非常有价值,比如指出 对象分配.垃圾回收(GC).线程调度以及Binder调用 是Android系统中常见的卡顿原因,更重要的是给出了定位和解 ...
- Android UI开发第二十五篇——分享一篇自定义的 Action Bar
Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...
- Android UI滑动加载源码
2019独角兽企业重金招聘Python工程师标准>>> android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall ...
- android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
- android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I
Android 的官方开发者博客发了一份幻灯片,介绍了一些 Android UI 设计的小贴士,Roger 在这里以看图说话的形式发出来,有兴趣的读者就继续往下翻吧.整个 PPT 共分5个部分,Par ...
- 【Android UI】图片 + 文字展示by SpannableStringBuilder
起源 图片和文字混合展示,比如这么个需求,需要在每段文字的左边要有一个小圆点,(小圆点符号在android系统中并不支持). 先用TextView的setDrawableLeft, 嗯,达到要求,那么 ...
- Wiew 像写 Android UI 一样写小游戏布局
Wiew 项目地址: https://github.com/onlynight/Wiew 简易微信小游戏view系统以及touch系统.你可以想写Android UI一样写界面布局,处理点击事件. 预 ...
- 使用XML声明自定义Android UI元素
如何使用XML声明Android UI元素? #1楼 Google似乎更新了其开发者页面,并在那里添加了各种培训. 其中一个处理自定义视图的创建,可以在这里找到 #2楼 除了大多数投票的答案. obt ...
最新文章
- 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级
- MyEclipse 常用设置和操作方法
- 数据结构和算法-链表
- Nginx的rewrite内容介绍
- YOUR GUIDE TO Lowering YourCholesterol With TLC学习笔记(暂时没有完成)
- angular ng-zorro 用组件自身方的法来重置表单校验
- android 九宫格封装,Android 九宫格布局
- 程序员们记得还是八五年PC登陆我国时候的事?
- 香橼做空跟谁学发第三枪 跟谁学股价盘后下跌1.37%
- 分治,递归,贪心算法,动态规划的关系
- java多线程回顾1:线程的概念与创建
- 怎么隐藏电脑桌面计算机,怎么隐藏电脑桌面软件
- sqli-labs(28-28a)
- WordPress评论摘要标签:comment_excerpt
- 腾讯云轻量应用服务器下使用RPM包方式安装GreatSQL单主环境
- click是哪个键 wheel_Click是什么意思?键盘上的Click键在哪里?
- 动态规划-泰波那契序列
- uWSGI学习笔记3——使用uWSGI部署Flask应用
- 【老九学堂】【C++】编码命名规范
- P014魔改8G显存