这是一个可以设置7天每天壁纸的app
主界面 alertManager
package zhang.example;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.Map;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class alertManager extends Activity {
private Button start;
private Button stop;
private Button m1;
private Button m2;
private Button m3;
private Button m4;
private Button m5;
private Button m6;
private Button m7;
private TextView t1;
private TextView t2;
private TextView t3;
private TextView t4;
private TextView t5;
private TextView t6;
private TextView t7;
private DailyBgDB db;
private Map<Integer,Integer> map;
private LayoutInflater inflater;
private int tmpWhich=0;
private final int[] bg={R.drawable.b1,R.drawable.b2,R.drawable.b3,R.drawable.b4,R.drawable.b5,R.drawable.b6,R.drawable.b7,};
private final String[] bgname={"b1.jpeg","b2.jpeg","b3.jpeg","b4.jpeg","b5.jpeg","b6.jpeg","b7.jpeg"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
initSettingData();
t1=(TextView)findViewById(R.id.t1);
t2=(TextView)findViewById(R.id.t2);
t3=(TextView)findViewById(R.id.t3);
t4=(TextView)findViewById(R.id.t4);
t5=(TextView)findViewById(R.id.t5);
t6=(TextView)findViewById(R.id.t6);
t7=(TextView)findViewById(R.id.t7);
if(!map.get(0).equals(99)){
t1.setText(bgname[map.get(0)]);
}
if(!map.get(1).equals(99)){
t2.setText(bgname[map.get(1)]);
}
if(!map.get(2).equals(99)){
t3.setText(bgname[map.get(2)]);
}
if(!map.get(3).equals(99)){
t4.setText(bgname[map.get(3)]);
}
if(!map.get(4).equals(99)){
t5.setText(bgname[map.get(4)]);
}
if(!map.get(5).equals(99)){
t6.setText(bgname[map.get(5)]);
}
if(!map.get(6).equals(99)){
t7.setText(bgname[map.get(6)]);
}
m1=(Button)findViewById(R.id.m1);
m2=(Button)findViewById(R.id.m2);
m3=(Button)findViewById(R.id.m3);
m4=(Button)findViewById(R.id.m4);
m5=(Button)findViewById(R.id.m5);
m6=(Button)findViewById(R.id.m6);
m7=(Button)findViewById(R.id.m7);
start=(Button)findViewById(R.id.start);
stop=(Button)findViewById(R.id.stop);
m1=initButton(m1,t1,0);
m2=initButton(m2,t2,1);
m3=initButton(m3,t3,2);
m4=initButton(m4,t4,3);
m5=initButton(m5,t5,4);
m6=initButton(m6,t6,5);
m7=initButton(m7,t7,6);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
long startTime=calendar.getTimeInMillis();
long repeatTime=24*60*60*1000;//间隔时间
Intent intent =new Intent(alertManager.this,MyReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(alertManager.this, 0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC, startTime, repeatTime, sender);
Toast.makeText(alertManager.this, "服务已启动", Toast.LENGTH_SHORT).show();
Intent i=new Intent(alertManager.this,ChangeBgImage.class);
startActivity(i);
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent =new Intent(alertManager.this,MyReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(alertManager.this, 0, intent, 0);
//删除调度
AlarmManager am= (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(sender);
Toast.makeText(alertManager.this, "服务已停止", Toast.LENGTH_SHORT).show();
}
});
}
private void initSettingData(){
map= new LinkedHashMap<Integer,Integer>();
db=new DailyBgDB(alertManager.this);
Cursor cur=db.select();
while(cur.moveToNext()){
map.put(cur.getInt(0), cur.getInt(1));
}
cur.close();
db.close();
}
private Button initButton(Button b,final TextView t,final int id){
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new AlertDialog.Builder(alertManager.this)
.setTitle("请选择图片:")
.setSingleChoiceItems(bgname, map.get(id),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
tmpWhich=which;
View view =inflater.inflate(R.layout.preview, null);
TextView message =(TextView) view.findViewById(R.id.bgName);
message.setText(bgname[which]);
ImageView mView01=(ImageView)view.findViewById(R.id.bgImage);
mView01.setImageResource(bg[which]);
Toast toast=Toast.makeText(alertManager.this, "", Toast.LENGTH_SHORT);
toast.setView(view);
toast.show();
}
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
//改变画面显示的设置图片文件时间
t.setText(bgname[tmpWhich]);
//改变MAP的值
map.put(id, tmpWhich);
//存到数据库
saveData(id,tmpWhich);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
}).show();
}
});
return b;
}
public void saveData(int id,int value){
db=new DailyBgDB(alertManager.this);
db.close();
}
}
对应的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/back"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textSize="50dip"
/>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期一:" android:id="@+id/x1" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t1" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x1" android:layout_alignTop="@+id/x1" android:layout_alignBottom="@+id/x1"></TextView>
<Button android:text="设置" android:id="@+id/m1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期二:" android:id="@+id/x2" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t2" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x2" android:layout_alignTop="@+id/x2" android:layout_alignBottom="@+id/x2"></TextView>
<Button android:text="设置" android:id="@+id/m2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期三:" android:id="@+id/x3" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t3" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x3" android:layout_alignTop="@+id/x3" android:layout_alignBottom="@+id/x3"></TextView>
<Button android:text="设置" android:id="@+id/m3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期四:" android:id="@+id/x4" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t4" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x4" android:layout_alignTop="@+id/x4" android:layout_alignBottom="@+id/x4"></TextView>
<Button android:text="设置" android:id="@+id/m4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期五:" android:id="@+id/x5" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t5" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x5" android:layout_alignTop="@+id/x5" android:layout_alignBottom="@+id/x5"></TextView>
<Button android:text="设置" android:id="@+id/m5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期六:" android:id="@+id/x6" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t6" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x6" android:layout_alignTop="@+id/x6" android:layout_alignBottom="@+id/x6"></TextView>
<Button android:text="设置" android:id="@+id/m6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<TextView android:text="星期天:" android:id="@+id/x7" android:textSize="30dip" android:layout_marginLeft="30dip" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_width="wrap_content" android:gravity="center_horizontal" android:id="@+id/t7" android:text="" android:layout_height="wrap_content" android:textSize="30dip" android:layout_toRightOf="@+id/x7" android:layout_alignTop="@+id/x7" android:layout_alignBottom="@+id/x7"></TextView>
<Button android:text="设置" android:id="@+id/m7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dip"></Button>
</RelativeLayout>
</TableLayout>
<TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">
<RelativeLayout android:orientation="horizontal">
<Button android:text="启动服务" android:layout_marginLeft="70dip" android:layout_alignParentLeft="true" android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<Button android:text="停止服务" android:layout_marginRight="70dip" android:layout_alignParentRight="true" android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</RelativeLayout>
</TableLayout>
</LinearLayout>
changBgImage
package zhang.example;
import java.util.Calendar;
import android.app.Activity;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
public class ChangeBgImage extends Activity{
private static final int[] bg={R.drawable.b1,
R.drawable.b2,R.drawable.b3,R.drawable.b4,
R.drawable.b5,R.drawable.b6,R.drawable.b7};
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.progress);
Calendar ca = Calendar.getInstance();
int dayOfWeek=ca.get(Calendar.DAY_OF_WEEK)-1;
int DailyBg =0;
String selection = "DailyId=?";
String[] selectionArgs=new String[]{""+dayOfWeek};
DailyBgDB db=new DailyBgDB(ChangeBgImage.this);
Cursor cur=db.select(selection,selectionArgs);
while(cur.moveToNext()){
DailyBg=cur.getInt(0);
}
cur.close();
db.close();
if(DailyBg!=99){
Bitmap bmp=BitmapFactory.decodeResource(getResources(),bg[DailyBg]);
try{
super.setWallpaper(bmp);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finish();
}
}
}
存储设置到数据库
package zhang.example;
import java.util.Calendar;
import android.app.Activity;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
public class ChangeBgImage extends Activity{
private static final int[] bg={R.drawable.b1,
R.drawable.b2,R.drawable.b3,R.drawable.b4,
R.drawable.b5,R.drawable.b6,R.drawable.b7};
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.progress);
Calendar ca = Calendar.getInstance();
int dayOfWeek=ca.get(Calendar.DAY_OF_WEEK)-1;
int DailyBg =0;
String selection = "DailyId=?";
String[] selectionArgs=new String[]{""+dayOfWeek};
DailyBgDB db=new DailyBgDB(ChangeBgImage.this);
Cursor cur=db.select(selection,selectionArgs);
while(cur.moveToNext()){
DailyBg=cur.getInt(0);
}
cur.close();
db.close();
if(DailyBg!=99){
Bitmap bmp=BitmapFactory.decodeResource(getResources(),bg[DailyBg]);
try{
super.setWallpaper(bmp);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finish();
}
}
}
package zhang.example;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent i=new Intent(context,ChangeBgImage.class);
Bundle bundleRet = new Bundle();
bundleRet.putString("STR_CALLER", "");
i.putExtras(bundleRet);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
自定义的Toast布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/layout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<ImageView
android:id="@+id/bgImage"
android:layout_width="160px"
android:layout_height="240px"
android:gravity="center"
>
</ImageView>
<TextView
android:id="@+id/bgName"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="20sp"
android:gravity="center"
>
</TextView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_progress"
android:textSize="18sp"
android:layout_x="80px"
android:layout_y="182px"
>
</TextView>
</AbsoluteLayout>
配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="zhang.example"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".MyReceiver" android:process=":remote"/>
<activity android:name=".alertManager" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ChangeBgImage" android:label="@string/app_name"/>
</application>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
</manifest>