安卓自定义电量显示图标
来源:互联网 发布:董小飒淘宝店亏损 编辑:程序博客网 时间:2024/05/16 11:27
安卓自定义电量显示图标-----使用广播监听电量的变化,获取实时电量并使用自定义view画出对应的图标,看图:
自定义view实现实时电量显示:BatteryView.java
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.view.View;/** * 自定义view 电池电量条 * Created by ${赵小贱} on 2017/7/19. */public class BatteryView extends View { private int mPower = 100; public BatteryView(Context context) { super(context); } public BatteryView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int battery_left = 0; int battery_top = 0; int battery_width = 25; int battery_height = 15; int battery_head_width = 3; int battery_head_height = 3; int battery_inside_margin = 3; //先画外框 Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE); Rect rect = new Rect(battery_left, battery_top, battery_left + battery_width, battery_top + battery_height); canvas.drawRect(rect, paint); float power_percent = mPower / 100.0f; Paint paint2 = new Paint(paint); paint2.setStyle(Paint.Style.FILL); //画电量 if(power_percent != 0) { int p_left = battery_left + battery_inside_margin; int p_top = battery_top + battery_inside_margin; int p_right = p_left - battery_inside_margin + (int)((battery_width - battery_inside_margin) * power_percent); int p_bottom = p_top + battery_height - battery_inside_margin * 2; Rect rect2 = new Rect(p_left, p_top, p_right , p_bottom); canvas.drawRect(rect2, paint2); } //画电池头 int h_left = battery_left + battery_width; int h_top = battery_top + battery_height / 2 - battery_head_height / 2; int h_right = h_left + battery_head_width; int h_bottom = h_top + battery_head_height; Rect rect3 = new Rect(h_left, h_top, h_right, h_bottom); canvas.drawRect(rect3, paint2); } public void setPower(int power) { mPower = power; if(mPower < 0) { mPower = 0; } invalidate(); }}
显示电量图标的布局文件:activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimaryDark" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingBottom="10dp" android:paddingTop="10dp"> <TextView android:id="@+id/tv_voltameter_value" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="" android:textColor="@color/white" android:textSize="15dp" android:textStyle="bold" /> <com.hykjsjkj.wifidatebatterydemo.BatteryView android:id="@+id/battery_view" android:layout_width="25dp" android:layout_height="10dp" android:layout_marginLeft="5dp" /> </LinearLayout></LinearLayout>
调用代码:MainActivity.java
import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity { @Bind(R.id.tv_voltameter_value) TextView tvVoltameterValue; private BatteryBroadcastReciver reciver; private BatteryView mBatteryView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); mBatteryView = (BatteryView) findViewById(R.id.battery_view); //设置电量 initBattery(); } /** * 注册电量监听的广播 */ public void initBattery() { //电量监听的广播 reciver = new BatteryBroadcastReciver(tvVoltameterValue, mBatteryView); //创建一个过滤器 IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); //注册电量监听广播 registerReceiver(reciver, intentFilter); } @Override protected void onDestroy() { super.onDestroy(); if (reciver != null) { unregisterReceiver(reciver);//解除注册 } }}
源码下载地址:http://download.csdn.net/download/zhaoxiaojian1213/9977254
安卓实时更新显示时间:http://blog.csdn.net/zhaoxiaojian1213/article/details/77976688
安卓监听WiFi信号的变化:http://blog.csdn.net/zhaoxiaojian1213/article/details/77976504
阅读全文
2 0
- 安卓自定义电量显示图标
- XE6 安卓电量检测
- XE6 安卓电量检测
- 安卓广播监听电量
- 安卓——自定义checkbox图标
- Android6.0电池图标外显示电量百分比
- Unity获取安卓电量和时间
- 监听安卓手机电量BroadcastRecevier
- E4A实现安卓电量闹钟
- 安卓自定义带删除图标的输入框EditView
- 安卓自定义带删除图标的输入框EditView
- 安卓开发之自定义View通过Drawable绘制图标
- 安卓icon应用图标不能显示的可能问题
- 安卓2.3以上选项菜单不能显示图标问题
- 安卓开发安装应用不显示图标方法
- 安卓AlertDialog自定义显示内容
- Android电量图标实现
- Android显示电量——自定义电池View
- 怎样去掉MyEclipse不需要的启动加载项
- 【项目2
- 用模式思考
- 红米Note4x装App闪退的问题!
- ScrollView 与 recyclerView、WebView的滑动冲突
- 安卓自定义电量显示图标
- 总结
- 2017年香港春季电子产品展览会、品牌荟萃廊、国际资讯科技博览(ICT Expo)会刊(参展商名录)
- 趣题学算法之动态规划-形式语言
- hadoop
- 最新java经典笔试题带详解 30道
- Myeclipse编辑区背景色配置
- Spring Boot Maven Plugin -- repackage目标
- 在eclipse中开发SWT客户端程序