Android實(shí)現(xiàn)顯示電量的控件代碼
下面介紹了Android實(shí)現(xiàn)顯示電量的控件代碼,具體代碼如下:
1、目錄結(jié)構(gòu),本人是使用安卓死丟丟。

2、運(yùn)行界面,輸入框中輸入數(shù)值,點(diǎn)擊刷新,會再電池中顯示出相應(yīng)的電量

3、繪制自定義電池控件,首先,新建一個(gè)類BatteryState繼承View
private Context mContext; private float width; private float height; private Paint mPaint; private float powerQuantity=0.5f;//電量
要使用到的變量
public BatteryState(Context context) {
super(context);
mContext=context;
mPaint = new Paint();
}
public BatteryState(Context context, AttributeSet attrs) {
super(context, attrs);
mContext=context;
mPaint = new Paint();
}
public BatteryState(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext=context;
mPaint = new Paint();
}
三個(gè)構(gòu)造方法,自定義控件的時(shí)候一般會把這三個(gè)構(gòu)造方法寫出來,便于在layout中使用或者直接定義,其中AttributeSet是當(dāng)使用xml文件定義該控件時(shí)引用的屬性集
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// 計(jì)算控件尺寸
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
//繪制界面
super.onDraw(canvas);
Bitmap batteryBitmap=ReadBitMap(mContext, R.drawable.battery_empty);//讀取圖片資源
width=batteryBitmap.getWidth();
height=batteryBitmap.getHeight();
if (powerQuantity>0.3f&&powerQuantity<=1) {
// 電量少于30%顯示紅色
mPaint.setColor(Color.GREEN);
}
else if (powerQuantity>=0&&powerQuantity<=0.3)
{
mPaint.setColor(Color.RED);
}
// 計(jì)算繪制電量的區(qū)域
float right=width*0.94f;
float left=width*0.21f+(right-width*0.21f)*(1-powerQuantity);
float tope=height*0.45f;
float bottom=height*0.67f;
canvas.drawRect(left,tope,right,bottom,mPaint);
canvas.drawBitmap(batteryBitmap, 0, 0, mPaint);
}
由于我們定義的控件時(shí)一個(gè)單個(gè)控件,不是容器控件,所以我只重寫了onMeasure、onDraw分別用來計(jì)算大小和繪制界面,根據(jù)背景圖片來計(jì)算要繪制的區(qū)域
public void refreshPower(float power)
{
powerQuantity=power;
if (powerQuantity>1.0f)
powerQuantity=1.0f;
if (powerQuantity<0)
powerQuantity=0;
invalidate();
}
刷新控件
4、在xml文件中定義:
<LinearLayout
android:layout_width="wrap_content"
android:layout_marginLeft="30dp"
android:layout_height="30dp">
<com.example.administrator.batterytest.BatteryState
android:id="@+id/bs_power"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
5、在Activity中使用
mBtnTry = (TextView) findViewById(R.id.btn_try);
mBtnTry.setText("刷新電量");
// mBtnTry.setBackground(getResources().getDrawable(R.drawable.maxwell_sun_5_bar));
mBsPower = (BatteryState) findViewById(R.id.bs_power);
mBtnTry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float power = Integer.parseInt(mEtPower.getText().toString());
float p = power / 100;
mBsPower.refreshPower(p);
}
});
希望本文所述對你有所幫助,Android實(shí)現(xiàn)顯示電量的控件代碼就給大家介紹到這里了。希望大家繼續(xù)關(guān)注我們的網(wǎng)站!
- Android中檢查、監(jiān)聽電量和充電狀態(tài)的方法
- 解析Android獲取系統(tǒng)cpu信息,內(nèi)存,版本,電量等信息的方法詳解
- Android實(shí)現(xiàn)偵聽電池狀態(tài)顯示、電量及充電動態(tài)顯示的方法
- Android中獲取電池電量實(shí)例代碼
- Android獲取手機(jī)電池電量用法實(shí)例
- android電源信息查看(電量、溫度、電壓)實(shí)例代碼
- Android編程之電池電量信息更新的方法(基于BatteryService實(shí)現(xiàn))
- Android電池電量監(jiān)聽的示例代碼
- 獲取Android設(shè)備電池電量狀態(tài)
相關(guān)文章
Android+Flutter實(shí)現(xiàn)彩虹圖案的繪制
彩虹,是氣象中的一種光學(xué)現(xiàn)象,當(dāng)太陽光照射到半空中的水滴,光線被折射及反射,在天空上形成拱形的七彩光譜。接下來,我們就自己手動繪制一下彩虹圖案吧2022-11-11
Android 通過代碼設(shè)置、打開wifi熱點(diǎn)及熱點(diǎn)連接的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 通過代碼設(shè)置、打開wifi熱點(diǎn)及熱點(diǎn)連接的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-05-05
Android實(shí)現(xiàn)雙向滑動特效的實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)雙向滑動特效的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助,一起跟隨小編過來看看吧2018-05-05
Android用HandlerThread模擬AsyncTask功能(ThreadTask)
本文主要講用HandlerThread模擬AsyncTask功能,這里提供實(shí)例代碼以便參考,有需要的小伙伴可以參考下2016-07-07
Android 如何攔截用戶頻繁操作(點(diǎn)擊事件)
本文主要介紹了Android 如何攔截用戶頻繁操作,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
android開發(fā)教程之系統(tǒng)資源的使用方法 android資源文件
這篇文章主要介紹了android中的系統(tǒng)資源的使用方法,包括顏色資源 、字符串資源、尺寸資源、XML資源文件,需要的朋友可以參考下2014-02-02
Flutter?Widget?之package?mason實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Flutter?Widget?之package:?mason實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android開發(fā)設(shè)置RadioButton點(diǎn)擊效果的方法
這篇文章主要介紹了Android開發(fā)設(shè)置RadioButton點(diǎn)擊效果的方法,詳細(xì)分析了Android開發(fā)中RadioButton屬性功能及相關(guān)設(shè)置技巧,需要的朋友可以參考下2017-06-06

