-
?。。。?查看全部
-
***用于縮放查看全部
-
***這個一般用于繪制進度條,比如說手機上的電量進度條。 ***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
提交
取消