Android做一個顯示電量的小控制元件
1、目錄結構,本人是使用安卓死丟丟。
2、執行介面,輸入框中輸入數值,點選重新整理,會再電池中顯示出相應的電量
3、繪製自定義電池控制元件,首先,新建一個類BatteryState繼承View
private Context mContext;
private float width;
private float height;
private Paint mPaint;
private float powerQuantity=0.5f;//電量
要使用到的變數
三個構造方法,自定義控制元件的時候一般會把這三個構造方法寫出來,便於在layout中使用或者直接定義,其中AttributeSet是當使用xml檔案定義該控制元件時引用的屬性集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(); }
由於我們定義的控制元件時一個單個控制元件,不是容器控制元件,所以我只重寫了onMeasure、onDraw分別用來計算大小和繪製介面,根據背景圖片來計算要繪製的區域@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // 計算控制元件尺寸 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); } // 計算繪製電量的區域 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); }
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);
}
});
原始碼 http://download.csdn.net/detail/y280903468/9480079
相關推薦
Android做一個顯示電量的小控制元件
1、目錄結構,本人是使用安卓死丟丟。 2、執行介面,輸入框中輸入數值,點選重新整理,會再電池中顯示出相應的電量 3、繪製自定義電池控制元件,首先,新建一個類BatteryState繼承View private Context mContext; private fl
android-做一個簡單的左滑刪除控制元件
import android.animation.ValueAnimator; import android.content.Context; import android.graphics.PointF; import android.support.v4.view.ViewConfigurat
【Android介面實現】資訊更新小紅點顯示——自定義控制元件BadgeView的使用介紹
在現在大部分的資訊釋出類應用,都有這樣的一個功能:當後臺資料更新,比如有系統訊息或者是使用者間有互動的時候,通過在控制元件上顯示一個小紅點來提示使用者有新的資訊。一般來說,這種業務需求,我們可以在佈局檔案中隱藏一個小紅點,然後當檢測到有資料更新的時候,我們將隱藏的小紅點顯示
寫的一個UGUI下Image控制元件做序列幀動畫的小工具
unity2D使用序列幀做動畫,一般都用2d SpriteRenderer,它的好處是能夠沿用圖片原有的大小和錨點。特別是我們使用TexturePacker打圖集的時候並且Trim邊緣空白的時候,可以直接使用它,而不用在程式中調整它的位置等資訊。 然而我們如果
androidの桌面小控制元件(1)—電池狀態顯示
桌面小控制元件的實現是基於Broadcast的形式實現的,因此,每一個桌面小控制元件都對應於一個BroadcastReceiver類。Android系統提供了一個AppWidgetProvider類(它就是BroadcastReceiver的子類),這個類很關鍵,你在寫桌面小控制元件時只需繼承這個類就行。
微信小程式實現顯示和隱藏控制元件-頭像-取值-bindblur事件
微信小程式實現顯示和隱藏控制元件 .wxml: <view class=" {{showOrHidden?'show':'hidden'}}"></view> .wxss: .hidden { display: none; } .show { display: b
Android小控制元件:
1.ToggleButton 通過一個帶有亮度指示同時預設文字為“ON”(TextOn)或“OFF”(TextOff)的按鈕顯示選中/未選中狀態。 在java程式碼中: ToggleButton tb_main_tb1 = (ToggleButton) findViewB
android popupwindow從下彈出,顯示在某控制元件上方
popupwindow彈出時從下往上,隱藏時從上往下,並且顯示在指定控制元件上方View inflate = LayoutInflater.from(getContext()).inflate(R.layout.popupwindow_shop, null);
Android 顯示全文摺疊控制元件
轉載請註明來源! 一般列表裡文字太多的一個摺疊效果的空間,效果圖如下。 當文字超過設定的行數後就摺疊,小於設定行數不顯示展開按鈕。下面上程式碼。 先看佈局檔案: <?xml version="1.0" encoding="utf-8
qt 小控制元件之textEdit
獲取 textedit 的文字內容:QString text = ui->textEdit->toPlainText(); 設定textedit 的文字內容:ui->textEdit->append(“lkf”);此方法追加內容是換行追加 char b[10]
Android自定義View--翻書控制元件(一)
0.前言 最近重看了一遍封神演義,感覺QQ閱讀那個翻書的效果挺好的,準備做一個。上週五下午用了兩個小時只寫了一部分功能,以後有時間再完善 1.分析 先看效果圖 這個空間,說簡單也簡單,說難也難,簡單就在於這個效果主要就是依賴canvas的clippath才見到部分canvas,難就難在裁
Android 彈出框LemonBubble提示控制元件
簡介:這是一個完全Made in China的炫酷彈出指示層Android版本(-_-#意思就是還有iOS的),他能讓你快速的自定義任何樣式的彈出框 最新更新記錄: 捕捉了LemonBubble.forceHide()中的空指標異常,保證開發者在onDestroy
android開發:自定義組合控制元件
內容介紹 本文記錄,自定義組合控制元件,為了可以程式碼複用,減少程式碼量 配置控制元件屬性檔案 開啟res/values/目錄下的arss.xml檔案,新增下面屬性程式碼,如果沒有建立arrs.xml檔案。 <?xml version="1.0" enc
android 多功能自定義畫板控制元件(用於解決特定需求)
在專案中需要做一個可以自定義軌跡,但始終只有一條線,並且支援撤銷(撤銷單位為MotionEvent的down事件到up事件),還要支援動畫預覽等功能,最重要的是能夠按照間隔畫素來獲取所有點的座標,用於專案的其他功能。 整體的思路 1.專案中的應用場景需要畫板是一個圓形的,這個好實現用canv
Android PreferenceActivity新增Button、Textview控制元件
因為PreferenceActivity載入的layout是以PreferenceScreen為底的,所以沒辦法在layout裡面直接新增TextView之類的控制元件。 此時可以把PreferenceScreen當做一個listview,放在另一個layout中: 1. PreferenceScreen
Android : 事件分發,以及消除子控制元件和父控制元件互相的影響
效果圖 消除在上下滑的時候讓下面的listview控制元件不進行滑動 如題,先上xml的程式碼 父控制元件listview <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Con
Android [Camera 原始碼] 元資料和控制元件(Metadata and Controls) Google官方文件(四)
Google原始碼網地址連結:https://source.android.com/devices/camera 該Google Camera的文件為系列文章,文章列表: overview Camera3 HAL Subsystem Metadata and Con
VS程式設計,編輯WPF過程中,點選設計器中介面某一控制元件,在XAML中高亮突出顯示相應的控制元件程式碼的設定方法。
在編輯製件WPF過程中,當介面中控制元件較多時,可通過點選設計器中具體的控制元件,從而中在xaml程式碼視窗中快速跳轉到對應的部分。為了突出顯示該部分控制元件程式碼的名稱,方便視覺上直觀的觀察到被選中的控制元件對應的XAML程式碼,可以在VS中設定:選中控制元件後,高亮顯示對應的XAML
一個好看的時間控制元件
Android 一個好看的時間控制元件 1.依賴包 compile 'com.wx.wheelview:wheelview:1.3.3' 2.在佈局中使用 <LinearLayout android:layout_width="60dp
一個立體的按鈕 控制元件模板
<!--操作裝置按鍵模板--> <ControlTemplate x:Key="ButtonControlTemplate1" TargetType="{x:Type Button}"> <Grid>