根据返回的电量,实现充电状态,充电完成电量显示

来源:互联网 发布:证明贪心算法是最优解 编辑:程序博客网 时间:2024/05/16 19:46

准备6张图片,实现充电量的显示,drawable中新建文件battery_bg.xml:

<?xml version="1.0" encoding="utf-8"?><level-list xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:drawable="@drawable/battery0"        android:maxLevel="10"        android:minLevel="0" />    <item        android:drawable="@drawable/battery1"        android:maxLevel="20"        android:minLevel="10" />    <item        android:drawable="@drawable/battery2"        android:maxLevel="40"        android:minLevel="20" />    <item        android:drawable="@drawable/battery3"        android:maxLevel="60"        android:minLevel="40" />    <item        android:drawable="@drawable/battery4"        android:maxLevel="80"        android:minLevel="60" />    <item        android:drawable="@drawable/battery5"        android:maxLevel="100"        android:minLevel="80" /></level-list>


layout中用TextView的左边drawable实现状态显示,text实现电量,如:

<TextView        android:id="@+id/tv_battery"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:drawableLeft="@drawable/battery_bg"/>


activity中:

int battery_soc = 0;    TextView battery = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        battery = (TextView) findViewById(R.id.tv_battery);        Timer timer = new Timer();        timer.schedule(new TimerTask() {            @Override            public void run() {                Message message = new Message();                message.what = 0;                handler.sendMessage(message);            }        }, 1000, 1000);     //1s变化一次    }    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 0:                    battery_soc += 20;    //电池级别为20                    if (battery_soc > 100) {                        battery_soc = 0;                    }                    if (battery != null) {                        battery.getCompoundDrawables()[0].setLevel(battery_soc);    //设置电池动画                    }                    break;                default:                    break;            }            super.handleMessage(msg);        }    };





0 0