Android显示电量——自定义电池View
2013-10-28 00:41
531 查看
源码下载地址:http://download.csdn.net/detail/feifei454498130/6462989
本文原创转载请注明地址:/article/2095670.html
简单实现的一个显示电池的电量的View,具体看代码
效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/07/96dfe0a115accaa9097b76dc78fa79bc)
源码下载地址:http://download.csdn.net/detail/feifei454498130/6462989
本文原创转载请注明地址:/article/2095670.html
简单实现的一个显示电池的电量的View,具体看代码
public class MainActivity extends Activity { BatteryView mBatteryView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBatteryView = (BatteryView) findViewById(R.id.battery_view); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override protected void onResume() { super.onResume(); register(); } @Override protected void onPause() { super.onPause(); unregister(); } private void register() { registerReceiver(batteryChangedReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } private void unregister() { unregisterReceiver(batteryChangedReceiver); } // 接受广播 private BroadcastReceiver batteryChangedReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { int level = intent.getIntExtra("level", 0); int scale = intent.getIntExtra("scale", 100); int power = level * 100 / scale; Log.d("Deom", "电池电量::" + power); mBatteryView.setPower(power); } } }; }
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.BLACK); paint.setAntiAlias(true); paint.setStyle(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(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(); } }
效果如下:
源码下载地址:http://download.csdn.net/detail/feifei454498130/6462989
相关文章推荐
- Android自定义View之电池电量显示
- Android自定义View之IndicatorView,显示当前tab页所处位置的View
- 【完美解决系列】Android在自定义Dialog中TextView内容显示不全的问题
- Android 自定义View(一) 介绍和一个简单TextView显示
- ViewPager嵌套RecycleView(Fragment作为数据源)来展示10条数据,每个Item显示的内容是(Android软件开发工程师)(用自定义的Adapter 实现
- 完美解决Android的WebView加载失败(404,500),显示的自定义视图
- Android开发:setContentView切换界面,自定义带CheckBox的ListView显示SQlite条目-----实现
- 【Android自定义View实战】之仿去哪儿网App图片按压显示指纹并缩放效果TouchFingerImageView
- (加入显示电量功能)模仿魅族、华为、小米电池续航管理软件, 动态水波纹滚动的圆形小球View
- Android实现侦听电池状态显示、电量及充电动态显示的方法
- android shell 电池电量 显示
- Android自定义AvatarImageView实现头像显示效果
- android 自定义View 实现饼图 统计图形 百分比饼图显示内容 扇形图统计
- Android:自定义imageview实现两条线裁剪图片,不在区域内显示阴影
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- Android 显示手机电池的当前电量
- Android自定义surfaceView显示多张图片
- android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
- Android自定义TextView实现文字图片居中显示
- android自定义view的自定义属性在xml中快捷键显示问题