Android ListView 圆角
android ListView实现圆角实例教程二
Android框架浅析之锁屏(Keyguard)机制原理
http://www.eoeandroid.com/thread-181604-1-1.html
andriod一个不错的启动菜单显示屏动画效果(转载)
http://www.eoeandroid.com/thread-171965-1-1.html
分享一个短信应用源码
http://www.eoeandroid.com/thread-179723-1-1.html
对于简短的listview,加上如上面这些比较死的数据,我们完全没有必要用listview来实现,TableLout完全够了.主要是我们怎么实现带有弧度的边罢了,不过这也完全得力于shape的功劳,至于点击效果效果嘛,我们有selector,下面介绍下实现:
配置文件部分代码:
<ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="none" ><LinearLayoutandroid:id="@+id/ll_main"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="vertical"android:paddingLeft="10dp"android:paddingRight="10dp" ></LinearLayout></ScrollView>
很简单,我们主要用这个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[] = { "检查新版本", "发送建议", "帮助", "关于" };@Overridepublic 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);} elseview.setBackgroundResource(R.drawable.list_center_selector);linearLayout.addView(view);linearLayout.addView(line);return linearLayout;} }
主要是getView有些复杂,不过都很好理解,相信大家都可以明白,只是没有动手做而已,小弟我只是想用这个练练手.
不过不要忘记我们的背景实现
这个是只有一项的背景,
default_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="[url=http://schemas.android.com/apk/res/android]http://schemas.android.com/apk/res/android[/url]"><item android:state_pressed="true"><shape><stroke android:width="1dp" android:color="@color/gray" /><solid android:color="@color/gray" /><corners android:radius="8dp" /></shape></item><item><shape><stroke android:width="1dp" android:color="@color/gray" /><solid android:color="@color/white" /><corners android:radius="8dp" /></shape></item> </selector>
list_top_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="[url=http://schemas.android.com/apk/res/android]http://schemas.android.com/apk/res/android[/url]"><item android:state_pressed="true"><shape><stroke android:width="1dp" android:color="@color/gray" /><solid android:color="@color/gray" /><corners android:topLeftRadius="8dp" android:topRightRadius="8dp" /></shape></item><item><shape><solid android:color="@color/white" /><corners android:topLeftRadius="8dp" android:topRightRadius="8dp" /></shape></item> </selector>
list_bottom_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="[url=http://schemas.android.com/apk/res/android]http://schemas.android.com/apk/res/android[/url]"><item android:state_pressed="true"><shape><stroke android:width="1dp" android:color="@color/gray" /><solid android:color="@color/gray" /><corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" /></shape></item><item><shape><solid android:color="@color/white" /><corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" /></shape></item> </selector>
list_center_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="[url=http://schemas.android.com/apk/res/android]http://schemas.android.com/apk/res/android[/url]"><item android:state_pressed="true"><shape><stroke android:width="1dp" android:color="@color/gray" /><solid android:color="@color/gray" /></shape></item><item><shape><solid android:color="@color/white" /></shape></item> </selector>
主要就这么多了,下面我们来看下实现效果:
原文地址:http://www.eoeandroid.com/thread-198770-1-1.html
转载于:https://www.cnblogs.com/spawnchen/archive/2012/09/11/2680404.html
Android ListView 圆角相关推荐
- Android实现ListView圆角效果
本文演示如何Android中实现ListView圆角效果. 无论是网站,还是APP,人们都爱看一些新颖的视图效果.直角看多了,就想看看圆角,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,特 ...
- Android 实现ListView圆角效果
今天,简单讲讲如何实现使用 ListView显示圆角. 其实代码很多都可以解决,这是在网上搜索的一个解决的代码. 无论是网站,还是APP,人们都爱看一些新颖的视图效果.直角看多了,就想看看 ...
- android imageview 锯齿,[置顶] android 自定义圆角ImageView以及锯齿的处理
看到很多人开发过程中要使用圆角图片时,解决方法有: 1.重新绘制一张图片 2.通过布局来配置 3.通过重写View来实现 其中1,2在这里就不讲了,重点讲讲方法三的实现. 实现一:通过截取画布一个圆形 ...
- android ListView包含Checkbox滑动时状态改变
题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...
- Android ListView 自定义背景后 滚动时的背景变黑问题
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧 ...
- Android listview viewholder
2019独角兽企业重金招聘Python工程师标准>>> Android ListView ViewHolder 利用adapter中的getView的 contentView 的复用 ...
- Android ListView常用用法
ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅. 程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按 ...
- 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d... 作者:黄宁源 一,背景 RecyclerView是谷歌官方出的一 ...
- Android ListView异步加载图片乱序问题,原因分析及解决方案
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...
最新文章
- 线性回归:不能忽视的三个问题
- OpenCV图像旋转的原理与技巧
- #Apache Spark系列技术直播# 第六讲【 What's New in Apache Spark 2.4? 】
- 小程序在输入npm命令_微信小程序使用npm包步骤
- 浏览器在DPI缩放时变化问题
- Hadoop下如何执行脚本
- R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
- Java面向对象封装和继承
- 重建大师5.0成为首款支持国产麒麟操作系统的自动实景三维建模软件
- Photoshop学习笔记
- 苹果应用商店AppStore审核规则指南
- 在浏览器中聊天(msn.jabber or gtalk,yahoo,aol,icq,meebo)
- MOSFET正温度系数和负温度系数
- 复现ReDet RTX 3090 pytorch1.8.1
- 如何写出高质量的文章:从战略到战术
- Python style百分制转五分制
- “景驰科技杯”2018年华南理工大学程序设计竞赛 C Youhane's Undergraduate Thesis (大模拟)
- Linux面试题汇总-2
- 热销产品缺货,滞销产品积压?WMS系统如何打造智能仓储
- TypeScript 初级教程-姜威-专题视频课程
热门文章
- python x 0b1011_PAT 1011 A+B和C (15)(C++JAVAPython)
- 50兆 svg 文件超过_中山兆驰产业园项目开工,预计竣工投产时间为…
- ssl双向认证_SSL握手协议不清楚?vTrus为你讲解其详细流程
- 016_SpringBoot整合MyBatis
- ps2020的antlib文件在哪_ant design pro 新增页面
- python算不算编程_Python 并不适合职场编程
- arrays中copyof复制两个数组_数组,及二维数组
- 计算机硬件大型作业报告,计算机硬件技术大作业报告.doc
- mac sublime html开发环境,在Mac下用Sublime Text 2 架设C开发环境
- 计算机网络期中考察方案,计算机网络期中考试题 b卷_ans.docx