Android自定義帶漸變色的進度條(帶水滴效果)

2021-07-25 05:27:21 字數 3470 閱讀 8465

感謝我的 team中楊立先生(pad)的指導與傳授!!!

一、直接看效果

二、直接上**

1.自定義控制項部分

import android.content.context;

import android.graphics.bitmap;

import android.graphics.bitmapfactory;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.lineargradient;

import android.graphics.paint;

import android.graphics.rectf;

import android.graphics.shader;

import android.util.attributeset;

import android.util.displaymetrics;

import android.util.log;

import android.view.view;

/***

@author

dahai

*@classname:$*

@description:$*

@date

$ $*

@email

[email protected]

*@since$*/

public class progressseek extends view

public progressseek(context context, attributeset attrs)

public progressseek(context context, attributeset attrs, int defstyleattr)

private void

initview(context context)

public void

init(int progress) else

if (cachebitmap != null)

cachecanvas = null;

} cachebitmap = bitmap.createbitmap(view_base_width

, bitmapheight * 2

, bitmap.config.argb_8888

);if (cachecanvas == null)

/*** 畫背景

*/rectf r = new rectf();

r.left = 0

;r.top = bitmapheight

;r.right = view_base_width

;r.bottom = bitmapwidth + 10

;cachecanvas.drawroundrect(r,

5f,

5f,

backgroundpaint);

if (progress > 0)

invalidate();

} @override

protected void

ondraw(canvas canvas)

view_edge_width = this.getwidth();

log.e("打出來看看控制項的寬度:"

, view_edge_width + "");

init(progress);}}

3. 布局檔案部分

xml version=

"1.0"

encoding=

"utf-8"

?>

xmlns:

android

=""android

:layout_width=

"match_parent"

android

:layout_height=

"match_parent"

android

:orientation=

"vertical"

>

android

:id=

"@+id/progress"

android

:layout_width=

"match_parent"

android

:layout_height=

"80dp"

>

android

:id=

"@+id/progress1"

android

:layout_width=

"match_parent"

android

:layout_height=

"80dp"

>

android

:id=

"@+id/progress2"

android

:layout_width=

"match_parent"

android

:layout_height=

"80dp"

>

android

:id=

"@+id/progress3"

android

:layout_width=

"match_parent"

android

:layout_height=

"80dp"

>

4.activity部分import android.os.bundle;

public class mainactivity extends activity

}  好了,**以及效果圖都貼了,看看吧,如果要實際用的請改動一下,封裝的成更完美點。

layer list漸變色的處理

第乙個圖層 定義幾何形狀 shape rectangle oval line ring 其中rectagle 矩形,oval 橢圓,line 水平直線,ring環形 android startcolor ffffff 開始顏色 android centercolor 000000 中間顏色,介面會先...

iOS 文字漸變色的實現

專案中需要實現的效果 實現方法 自定義cfgradientlabel繼承於uilabel,實現 drawrect 方法,在該方法裡面畫漸變色。在 cfgradientlabel.h 裡 import inte ce cfgradientlabel uilabel property nonatomic...

iOS開發之漸變色的實現

向凡神致敬 brief 建立乙個cagradientlayer物件用於放置需要漸變的顏色 cagradientlayer gradient cagradientlayer layer brief 獲取當前要設定顏色漸變的空間的bounds gradient.frame self view bound...