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"/>