
你想要那种透明可以看到activity的效果是需要在canvas上设置一个bitmap才可以的。
Canvas canvas = new Canvas()
canvas.setBitmap(bm_)
p.setColor(Color.TRANSPARENT)
p.setAntiAlias(true)
p.setStyle(Style.FILL)
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN))
canvas.save()
Rect r = new Rect(0,0,w*2,h*2)
canvas.drawRect(r, p)
canvas_.drawBitmap(bm_, 0, 0,null)
首先Gridview设置numcols=7,设置每页size4*7,样能够保证每页4行7列隐藏textview问题了实现有多种方法了自定SurfaceViewSurfaceView添加textview当也直接只多加层(遮罩层)要控制好隐藏简单visibilityGone和visible行了看Itemxml布局写何了
要隐藏和显示添加淡入淡出或者其动画效
首先放上所有成员变量
以上用到的方法
本Demo是使用Canvas进行绘制刻度,为了适配不同宽度的屏幕,所以小的刻度使用从中心指针处向两边绘制到屏幕边界的方法,使用GestureDetector接管View的触摸事件,在onScroll中修改体重值并不断进行重绘,达到刻度尺滚动的效果。并在onFling中接收抛动的事件,开启一个属性动画达到平滑的效果。由于我没有在GestureDetector中找到能响应不fling的up事件,所以要自己手动在onTouchEvent中写ACIONT_UP时的动作
遮罩层的实现方式,是drawRec 一个整个画布大小的白色矩形,使用线性渐变,两边不透明到中间透明。注意,由于使用了PorterDuff.Mode.MULTIPLY来合成,所以需要使用到离屏缓冲,关于离屏缓冲可以看看 HenCoder
最后附上github: https://github.com/Pro47x/BodyWeightScaleTableView
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)