主屏幕获取本地图片或者拍照获取,然后记录,下次打开,自动获取图片

public static String FAVORITE_DATA_FILE = "MY_IMG";

	private ImageView main_layout_first;
	protected static final int Menu_bg = Menu.FIRST;
	public static final String IMAGE_PATH = "My_xyzd";
	private static String mainBgTempImageFileName = "";
	private static final int FLAG_CHOOSE_IMG = 1;
	private static final int FLAG_CHOOSE_PHONE = 2;
	public static final File FILE_SDCARD = Environment
			.getExternalStorageDirectory();
	public static final File FILE_LOCAL = new File(FILE_SDCARD, IMAGE_PATH);
	public static final File FILE_PIC_SCREENSHOT = new File(FILE_LOCAL,
			"images/screenshots");
	Bitmap Bg_bitmap;
	private String mPhotoPath = "";


oncreate(){
main_layout_first = (ImageView) findViewById(R.id.main_layout_first);
String buffer = "";
		buffer = FileReadWriteUtil.ReadActivityFile(this, FAVORITE_DATA_FILE);

		if (buffer.length() > 0 || buffer != null) {
			Bg_bitmap = BitmapFactory.decodeFile(buffer);
			if (null != Bg_bitmap && !buffer.equals("")) {
				main_layout_first.setImageBitmap(Bg_bitmap);
			}

		}
.................
}

public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		menu.add(0, Menu_bg, 0, "替换屏幕背景");

		return true;
	}

	public boolean onOptionsItemSelected(MenuItem item) {// 点击事件监听
		super.onOptionsItemSelected(item);
		if (item.getItemId() == Menu_bg) {

			selectAvatar();

		}

		return true;
	}

	void selectAvatar() {
		// 切换头像的事件
		ModifyAvatarDialog modifyAvatarDialog = new ModifyAvatarDialog(
				WxxyMainActivity.this) {
			// 选择本地相册
			@Override
			public void doGoToImg() {
				this.dismiss();
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_PICK);
				intent.setType("image/*");
				startActivityForResult(intent, FLAG_CHOOSE_IMG);
			}

			// 选择相机拍照
			@Override
			public void doGoToPhone() {

				this.dismiss();
				String status = Environment.getExternalStorageState();
				if (status.equals(Environment.MEDIA_MOUNTED)) {
					try {
						mainBgTempImageFileName = "";
						mainBgTempImageFileName = String.valueOf((new Date())
								.getTime()) + ".png";
						File filePath = FILE_PIC_SCREENSHOT;
						if (!filePath.exists()) {
							filePath.mkdirs();
						}
						Intent intent = new Intent(
								android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
						File f = new File(filePath, mainBgTempImageFileName);
						// localTempImgDir和localTempImageFileName是自己定义的名字
						Uri u = Uri.fromFile(f);
						intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
						intent.putExtra(MediaStore.EXTRA_OUTPUT, u);
						startActivityForResult(intent, FLAG_CHOOSE_PHONE);
					} catch (ActivityNotFoundException e) {
					}
				}

			}
		};

		AlignmentSpan span = new AlignmentSpan.Standard(
				Layout.Alignment.ALIGN_CENTER);
		AbsoluteSizeSpan span_size = new AbsoluteSizeSpan(25, true);
		SpannableStringBuilder spannable = new SpannableStringBuilder();
		String dTitle = getString(R.string.dialog_choose_pic);
		spannable.append(dTitle);
		spannable.setSpan(span, 0, dTitle.length(),
				Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		spannable.setSpan(span_size, 0, dTitle.length(),
				Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		modifyAvatarDialog.setTitle(spannable);
		modifyAvatarDialog.show();
	}

	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		if (resultCode != RESULT_OK) { // 此处的 RESULT_OK 是系统自定义得一个常量

			Log.e("TAG->onresult", "ActivityResult resultCode error");

			return;

		}

		// 外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
		ContentResolver resolver = getContentResolver();
		// 此处的用于判断接收的Activity是不是你想要的那个

		if (requestCode == FLAG_CHOOSE_IMG && resultCode == RESULT_OK) {
			if (data != null) {
				try {
					Uri uri = data.getData();
					if (!TextUtils.isEmpty(uri.getAuthority())) {
						Cursor cursor = getContentResolver().query(uri,
								new String[] { MediaStore.Images.Media.DATA },
								null, null, null);
						if (null == cursor) {
							Common.DisplayToast(WxxyMainActivity.this, "图片没找到",
									1);
							return;
						}
						cursor.moveToFirst();
						String path = cursor.getString(cursor
								.getColumnIndex(MediaStore.Images.Media.DATA));
						cursor.close();
						Bg_bitmap = MediaStore.Images.Media.getBitmap(resolver,
								uri);
						// 显得到bitmap图片
						main_layout_first.setImageBitmap(Bg_bitmap);

						mPhotoPath = path;
					}

					FileReadWriteUtil.WriteActivityFile(this,
							FAVORITE_DATA_FILE, mPhotoPath);

				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		} else if (requestCode == FLAG_CHOOSE_PHONE && resultCode == RESULT_OK) {

			File f = new File(FILE_PIC_SCREENSHOT, mainBgTempImageFileName);

			Bg_bitmap = BitmapFactory.decodeFile(f.getAbsolutePath());

			main_layout_first.setImageBitmap(Bg_bitmap);

			mPhotoPath = f.getAbsolutePath();

			FileReadWriteUtil.WriteActivityFile(this, FAVORITE_DATA_FILE,
					mPhotoPath);
		}

	}

 <div class="iteye-blog-content-contain" style="font-size: 14px"></div>

 <ImageView  android:id="@+id/main_layout_first"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:scaleType="fitXY"
        android:orientation="vertical" android:src="@drawable/home_bg"/>

猜你喜欢

转载自274137570-qq-com.iteye.com/blog/2028289
今日推荐