一、需求:
1)先预览sd卡中的图片;
2)选择一张图片;
3)设置为所有页面的背景图;
二、实现步骤:
1)创建一个Android项目;
2)编写一个Activity类,作为完成以上功能的操作界面;(MainActivity.java)
3)编写一个Adapter类, 用于描述图像信息;(ImageAdapter.java)
4)编写一个Activity类,用于测试背景设置是否ok;(OtherActivity.java)
5)编写布局文件 res\layout\activity_main.xml和res\layout\activity_other.xml;
6)编写动画配置文件res\anm\scale.xml;(不加动画效果的话,可不写)
7)编写res\values\strings.xml文件;
8)AndroidManifest.xml;
9)测试
三、图示及参考代码:
1)项目结构图
2)MainActivity.java
package com.example.background;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
/**
* 简单示例,仅供参考
* @author huahua
*
*/
public class MainActivity extends Activity {
private Gallery gallery;
private ImageSwitcher imageSwitcher;
private Button btnGo;
private ImageAdapter imageAdapter;
//如果图片是放在项目资源目录中,则将图片资源添加到这里面
private int[] resources;//=new int[]{R.drawable.mm1,R.drawable.mm2,R.drawable.mm3,R.drawable.mm4,R.drawable.mm5,R.drawable.mm6,R.drawable.tu};
public static int resource;
private static int index;//记住用户预览之后选择的图片序号
public static boolean isInsdcard = true;
private String sdcardPath; //= "/mnt/sdcard/";
//如果图片是放在sdcard中,则将图片路径添加到这里面(调用setPaths()扫描sdcard目录)
private List<String> paths;
private Drawable[] drawables;
public static Drawable drawable;
private Button btnOther;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
gallery = (Gallery)findViewById(R.id.Gallery);
imageSwitcher = (ImageSwitcher)findViewById(R.id.ImageSwitcher);
imageSwitcher.setFactory(new ViewFactory(){
@Override
public View makeView() {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setBa