博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android ListView实现圆角实例教程二
阅读量:5286 次
发布时间:2019-06-14

本文共 4996 字,大约阅读时间需要 16 分钟。

Android框架浅析之锁屏(Keyguard)机制原理

andriod一个不错的启动菜单显示屏动画效果(转载)

分享一个短信应用源码

 

对于简短的listview,加上如上面这些比较死的数据,我们完全没有必要用listview来实现,TableLout完全够了.主要是我们怎么实现带有弧度的边罢了,不过这也完全得力于shape的功劳,至于点击效果效果嘛,我们有selector,下面介绍下实现:

配置文件部分代码:

很简单,我们主要用这个Linerlayout来呈放我们的Table. 

实现代码:

package com.jj.corner;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import android.R.color;import android.app.Activity;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.ArrayAdapter;import android.widget.LinearLayout;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.SimpleAdapter;import android.widget.TableLayout;import android.widget.TableRow;import android.widget.TextView;public class MainActivity2 extends Activity { private LinearLayout ll_main; private TableLayout tableLayout; private LinearLayout.LayoutParams layoutParams; private static final String MSG_0[] = { "jjhappyforever" }; private static final String MSG_1[] = { "天气动画", "通知栏天气" }; private static final String MSG_2[] = { "桌面插件", "绑定微博", "天气分享", "通知与提示",   "定时播报" }; private static final String MSG_3[] = { "检查新版本", "发送建议", "帮助", "关于" }; @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  requestWindowFeature(Window.FEATURE_NO_TITLE);  setContentView(R.layout.main2);  ll_main = (LinearLayout) findViewById(R.id.ll_main);  showTable(); } /***  * 显示table  */ public void showTable() {  layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,    LayoutParams.WRAP_CONTENT);  layoutParams.bottomMargin = 30;  layoutParams.topMargin = 10;  ll_main.addView(getTable(MSG_0), layoutParams);  ll_main.addView(getTable(MSG_1), layoutParams);  ll_main.addView(getTable(MSG_2), layoutParams);  ll_main.addView(getTable(MSG_3), layoutParams); } /***  * 获取Table  *   * @param array  * @return  */ public TableLayout getTable(String[] array) {  tableLayout = new TableLayout(this);  tableLayout.setLayoutParams(layoutParams);  tableLayout.setStretchAllColumns(true);  for (int i = 0; i < array.length; i++) {   TableRow tableRow = new TableRow(this);   View view = getView(array[i], i, array.length);   tableRow.addView(view);   tableLayout.addView(tableRow);  }  return tableLayout; } /****  *   * @param msg  *            显示信息  * @param current_Id  *            当前个数  * @param totle_Num  *            总个数  * @return  */ public View getView(String msg, int current_Id, int totle_Num) {  LinearLayout linearLayout = new LinearLayout(this);  LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);  layoutParams1.height = 1;  linearLayout.setOrientation(1);  // 创建分割线  View line = new View(this);  line.setLayoutParams(layoutParams1);  line.setBackgroundColor(getResources().getColor(R.color.black));  View view = LayoutInflater.from(MainActivity2.this).inflate(    R.layout.item, null);  view.setBackgroundDrawable(new BitmapDrawable());  view.setFocusable(true);  view.setClickable(true);  TextView textView = (TextView) view.findViewById(R.id.tv_list_item);  textView.setText(msg);  textView.setTextSize(20);  // 只有一项  if (totle_Num == 1) {   view.setBackgroundResource(R.drawable.default_selector);   return view;  }  // 第一项  else if (current_Id == 0) {   view.setBackgroundResource(R.drawable.list_top_selector);  }  // 最后一项  else if (current_Id == totle_Num - 1) {   view.setBackgroundResource(R.drawable.list_bottom_selector);   line.setVisibility(View.GONE);  } else   view.setBackgroundResource(R.drawable.list_center_selector);  linearLayout.addView(view);  linearLayout.addView(line);  return linearLayout; }}

主要是getView有些复杂,不过都很好理解,相信大家都可以明白,只是没有动手做而已,小弟我只是想用这个练练手. 

不过不要忘记我们的背景实现
这个是只有一项的背景,
default_selector.xml

list_top_selector.xml

list_bottom_selector.xml

list_center_selector.xml

主要就这么多了,下面我们来看下实现效果:

  

 

原文地址:

 

 

转载于:https://www.cnblogs.com/vus520/archive/2012/09/11/2679751.html

你可能感兴趣的文章
FoxMail邮件设置
查看>>
percona-toolkit 之 【pt-online-schema-change】说明
查看>>
[模板]大数加法
查看>>
ZeroBrane Lua脚本编辑器代码自动补全
查看>>
linux下播放mp3
查看>>
POJ1611-The Suspects-并查集
查看>>
笔记--cocos2d-x 3.0 环境搭建
查看>>
关于不断刷新界面jsp+ajax
查看>>
js高阶函数应用—函数防抖和节流
查看>>
eclipse 中java/scala 混合的maven项目 工作环境篇
查看>>
顺序栈与两栈共享空间-C语言实现
查看>>
【mongo】可以用localhost启动,无法用ip启动问题的解决
查看>>
【QT】视频播放
查看>>
揭开Redis的神秘面纱
查看>>
Object流
查看>>
Windows Phone开发(8):关于导航的小技巧 转:http://blog.csdn.net/tcjiaan/article/details/7285062...
查看>>
Ajax学习笔记1之第一个Ajax应用程序
查看>>
css3新单位vw、vh、vmin、vmax的使用详解(转载)
查看>>
软件测试培训第30天
查看>>
centos7 关闭防火墙
查看>>