package irdc.dian;
/* import相关class */
import irdc.dian.R;
import android.app.Activity;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
public class dian extends Activity
{
/* 变量声明 */
private int intLevel;
private int intScale;
private Button mButton01;
/* 创建BroadcastReceiver */
private BroadcastReceiver mBatInfoReceiver=new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
/* 如果捕捉到的action是ACTION_BATTERY_CHANGED,
* 就运行onBatteryInfoReceiver() */
if (Intent.ACTION_BATTERY_CHANGED.equals(action))
{
intLevel = intent.getIntExtra("level", 0);
intScale = intent.getIntExtra("scale", 100);
onBatteryInfoReceiver(intLevel,intScale);
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 载入main.xml Layout */
setContentView(R.layout.main);
/* 初始化Button,并设置点击后的动作 */
mButton01 = (Button)findViewById(R.id.myButton1);
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
/* 注册一个系统 BroadcastReceiver,作为访问电池计量之用 */
registerReceiver
(
mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
);
}
});
}
/* 捕捉到ACTION_BATTERY_CHANGED时要运行的method */
public void onBatteryInfoReceiver(int intLevel, int intScale)
{
/* create 跳出的对话窗口 */
final Dialog d = new Dialog(dian.this);
d.setTitle(R.string.str_dialog_title);
d.setContentView(R.layout.mydialog);
/* 创建一个背景模糊的Window,且将对话窗口放在前景 */
Window window = d.getWindow();
window.setFlags
(
WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND
);
/* 将取得的电池计量显示于Dialog中 */
TextView mTextView02=(TextView)d.findViewById(R.id.myTextView2);
mTextView02.setText
(
getResources().getText(R.string.str_dialog_body)+
String.valueOf(intLevel * 100 / intScale) + "%"
);
/* 设置返回主画面的按钮 */
Button mButton02 = (Button)d.findViewById(R.id.myButton2);
mButton02.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
/* 反注册Receiver,并关闭对话窗口 */
unregisterReceiver(mBatInfoReceiver);
d.dismiss();
}
});
d.show();
}
}
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:background="@drawable/white"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/myTextView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/blue"
android:textSize="20sp"
android:text="@string/str_title"
android:layout_x="60px"
android:layout_y="40px"
>
</TextView>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button1"
android:textColor="@drawable/black"
android:textSize="14sp"
android:layout_x="80px"
android:layout_y="90px"
>
</Button>
</AbsoluteLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/white"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/myTextView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/blue"
android:textSize="16sp"
android:gravity="center"
android:padding="10px"
>
</TextView>
<Button
android:id="@+id/myButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button2"
>
</Button>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="irdc.dian"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="irdc.dian.dian"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>