android-定时换桌面

该博客介绍了一个Android应用程序,能够实现每天自动更换不同的桌面壁纸,主要涉及到Android的布局、按钮、日历以及异常处理等方面的技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个可以设置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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值