Android圆弧形ListView的实现
来源:互联网 发布:javascript 刷新div 编辑:程序博客网 时间:2024/05/24 06:35
本文带大家来实现ListView的圆弧形的分布排列,原理很简单,就是根据ListView的每个Item的高度来对每一个item进行偏移。
首先自定义一个LinearLayout,这是ListView的每个Item的根布局,用来对每个item进行偏移的。
下面上代码:
public class MatrixLinearLayout extends LinearLayout { private int h = 0; private float fullTrans = 40f; public MatrixView(Context context, AttributeSet attrs) { super(context, attrs); } public void setParentHeight(int height) {<pre name="code" class="java"> //传入ListView的高度 h = height; } @Override protected void dispatchDraw(Canvas canvas) { canvas.save(); int top = getTop(); float trans = calculatetrans(top,h); Matrix m = canvas.getMatrix(); m.preTranslate(-2 / getWidth(), -2 / getHeight()); m.postTranslate(trans, 0); canvas.concat(m); super.dispatchDraw(canvas); canvas.restore(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } private float calculatetrans(int top,int h){ float result = 0f; if(top <= h/2.349f){ result = (h/2f-top)/(h/7f)*fullTrans; }else if(top > h/2.349f){ result = (top-h/3f)/(h/7f)*fullTrans; } return result; }}下面大家可以自己写个demo测试一下啦,就是写一个ListView,然后用上面自定义的MatrixLinearLayout 作为ListView的item的根布局,自己动手丰衣足食!
1 0
- Android圆弧形ListView的实现
- Android实现圆弧形渐变色进度条
- 圆弧形ListView(CircleList)
- 圆弧形ListView(CircleList)
- Android 实现渐变色的交替圆弧,显示进度百分比
- 圆弧的动画效果实现
- Android-自定义ProgressBar实现圆弧进度条
- android的ListView实现
- AS3实现沿着圆弧移动的物体
- Android画圆弧的角度问题
- Android自定义的圆弧型控件 RoundView
- Android渐变色的圆弧虚线
- android自定义圆弧进度条,可拖拽的progressBar
- android 可配置的圆弧进度条
- Android 圆弧形进度条 自定义View
- Android 圆弧形进度条 自定义View
- Android 圆弧形进度条 自定义View
- Android 圆弧形进度条 自定义View
- Ubuntu下使用GCC开发STM32的环境的搭建
- PID算法
- 在Ubuntu面板上添加CPU使用率及温度显示指示器
- zoj 4738 Choir 二维RMQ+预处理
- UIBezierPath 的使用介绍
- Android圆弧形ListView的实现
- HTML特殊字符编码对照表
- 思考:我为什么要学习javascript?
- POJ2985 The k-th Largest Group
- 在线扫描二维码申请光大信用卡 开卡后30天内首刷送5万积分
- *Word Break II
- Java的Object的equals和hashCode函数与集合类联合使用的问题解决方案
- IAR #pragma optimize 指令
- android触控,先了解MotionEvent(一)