-
!!!!查看全部
-
***用于缩放查看全部
-
***这个一般用于绘制进度条,比如说手机上的电量进度条。 ***maxLevel表示显示等级,默认显示第一个查看全部
-
!!!对比前一张查看全部
-
***在layer-list中可以放一些item ***因为在layer-list中,是从上面的item开始绘制的,所以最後那个item定义的颜色就覆盖在了最外面那一层查看全部
-
!!!查看全部
-
!!!查看全部
-
!!!查看全部
-
***可绘制的资源:可能是一个颜色,也可能是一个Bitmap图片,也可以是一个线条,或者是一个路径 ***方框中是Drawable一些基本的类查看全部
-
!!!查看全部
-
!!!查看全部
-
涟漪效果的实现方式查看全部
-
3.添加动态更新 (1)如果控件直接设置背景setBackgroundDrawable() 回调事件中调用drawable的touch处理 public void onTouch(MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mCenterX = event.getX(); mCenterY = event.getY(); mRadius = mRadius + 40; invalidateSelf(); break; } } (2)如果不使用设置背景drawable,会比较麻烦 首先看 public void invalidateSelf() { final Callback callback = getCallback(); if (callback != null) { callback.invalidateDrawable(this); } } 这就要设置一个callback:mRippleDrawable.setCallback(this); 然后看 callback.invalidateDrawable(),里面的verifyDrawable()和边界 重写下面两个接口 boolean verifyDrawable(Drawable who) { return who == mDrawable || super.verifyDrawable(who); } void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mDrawable.setBounds(0, 0, getWidth(), getHeight()); } 最后别忘了要设置ontouch监听查看全部
-
一、在view中实现一个简单的Drawable 1.先创建一个自定义的drawable,在draw(canvas)中写一些定制化的东西 (1)在控件中调用setBackgroundDrawable(drawable) (2)在控件中重写onDraw(canvas),调用drawable的draw() 但注意调用位置,最后调用的draw()会出现在最前面。 以上两种方式均可 二、完善Drawable的基本参数 1.需要做如下三步: (1)弄清楚Drawable中实现的方法 (2)添加一些涟漪效果所需的元素到Drawable (3)动态更新Drawable 2.弄清楚接口 (1)最重要的一个draw()方法,这个用来绘图的 可以借助一个画笔,绘制想要的任何东西 (2)setAlpha()设置透明度 注意因为这里是用了画笔Paint,所以当透明度变化时要为paint重新设置透明度 if (mAlpha != 255) { int alpha = mPaint.getAlpha(); int realAlpha = (int) (alpha * (mAlpha / 255f)); mPaint.setAlpha(realAlpha); } (3)setColorFilter()滤镜,主要对图片而言 (4)getOpacity()得到透明度属性 这里就是拿到画笔paint的透明度属性,PixelFormat.OPAQUE,PixelFormat.TRANSPARENT,PixelFormat.TRANSLUCENT 2.添加涟漪效果 so easy,直接用画笔画一个圆就行了 public void draw(Canvas canvas) { canvas.drawCircle(mCenterX, mCenterY, mRadius, mPaint); } 3.添加动态更新 思路是按钮按下时圆的半径变大,并且重新绘制圆。 这步操作需要借助drawable的invalidateSelf() (1)如果控件直接设置背景setBackgroundDrawable(),直接设置一个ontouch事件就行了 回调事件中调用drawable的touch处理查看全部
-
Drawable介绍 1.A Drawable is a general abstraction for "something that can be drawn." Most often you will deal with Drawable as the type of resource retrieved for drawing things to the screen; the Drawable class provides a generic API for dealing with an underlying visual resource that may take a variety of forms. Unlike a View, a Drawable does not have any facility to receive events or otherwise interact with the user. 最后一句是重点 2.重点 (1)layer-list是从上往下绘制,所以最下面的item会覆盖前面的 item中可以写shape等其他的类型 (2)level-list类似于layer-list,也有很多item。level-list可以最多指定10个等级,默认显示level1,通过代码设置显示哪个level 像电量的显示一样,level1显示最高电量,依次递减,当电量变化时通过代码显示不同level查看全部
举报
0/150
提交
取消