0

这是一个电池小部件。这不是我的代码,而是取自http://www.cmwmobile.com/index.php?option=com_content&view=article&id=56&Itemid=68

private final BroadcastReceiver batteryChangedReceiver = new
                BroadcastReceiver() {
            /**
             * {@inheritDoc}
             */
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();

                if (action != null && action.equals(
                        Intent.ACTION_BATTERY_CHANGED)) {
                    int rawLevel = intent.getIntExtra(
                        BatteryManager.EXTRA_LEVEL, -1);
                    int scale = intent.getIntExtra(
                        BatteryManager.EXTRA_SCALE, 1);

                    if (scale > 0) {
                        batteryLevel = rawLevel * 100 / scale;
                    }
                    else {
                        batteryLevel = rawLevel;
                    }

                    intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
                    intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
                    intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);

                    updateBattery(context);
                }
                else if (action != null && action.equals(ACTION_UPDATE)) {
                    updateBattery(context);
                }
            }
        };

我需要改变的是两件事。

1)(已解决)我需要%在电池电量后实现符号,但我不知道该怎么做。我已经尝试过batteryLevel = rawLevel + "%";,但给我一个错误。

2)实际上这个小部件只有背景颜色而不是图像。如果我将图像作为背景,除了在 xml 布局中更改背景之外还能做什么?我的意思是以编程方式我想在电池电量变化时更改图像。例如,如果电池电量为 80 则为 img1,如果为 70 则为 img2 等等。

编辑:第一点解决了。

4

2 回答 2

1

2)使用方法setImageResource(或setImageBitmap,... ImageView 文档

ImageView img = new ImageView(this);
img.setResource(R.drawable.image);
于 2013-08-22T14:59:17.687 回答
0

2) 如果你的 .xml 文件得到了例如 LinearLayout,

LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id);
switch(batteryLevel){
case 80:
    layout.setBackgroundResource(R.drawable.image_for_80);
    break;
case 70:
    layout.setBackgroundResource(R.drawable.image_for_70);
    break;
}
于 2013-08-22T15:02:22.950 回答