`
龙哥IT
  • 浏览: 252784 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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

阅读更多
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"/>

分享到:
评论

相关推荐

    获取本地图片与拍照图片的压缩

    在标题“获取本地图片与拍照图片的压缩”中,我们关注的核心是如何有效地管理和压缩图片,以防止内存溢出(Out Of Memory,简称OOM)问题,特别是在处理大尺寸图像时。描述中提到的“使用流获取文件进行压缩”,这是...

    Android 相册获取图片或者相机拍照获取图片

    在Android应用开发中,获取用户设备上的图片或者通过相机拍摄新照片是常见的需求。随着Android系统的不断升级,尤其是从Android 4.4(KitKat)开始引入的存储权限管理变化,开发者需要采取不同的策略来适配不同的...

    android获取本地及拍照的图片

    在Android开发中,获取本地图片和拍照功能是常见的应用场景,比如在社交应用或者个人资料编辑界面。本篇文章将详细介绍如何实现在Android应用中获取本地图片并显示在`ImageButton`上,以及如何调用相机拍摄新照片并...

    Android 拍照 获取本地图片

    在Android平台上,开发一款应用程序以实现“通过拍照获取图片并保存到本地,以及读取本地画廊的图片”是一项常见的需求。以下将详细介绍这个过程涉及的关键知识点。 首先,我们需要了解Android的权限管理。在...

    从本地图库获取图片和拍照获取图片

    本文将详细讲解如何实现“从本地图库获取图片”和“拍照获取图片”的功能,并涵盖相关技术点。 首先,我们讨论如何从本地图库获取图片。在Android平台上,可以使用`Intent`的`ACTION_PICK`或`ACTION_GET_CONTENT`来...

    拍照获取本地图片裁剪圆形显示

    在Android开发中,实现“拍照获取本地图片裁剪圆形显示”的功能是一项常见的需求,尤其是在社交应用中,如QQ、微信等。这个功能涉及到多个技术点,包括相机权限管理、图片选择、图片裁剪以及自定义圆形ImageView。接...

    拍照或本地获取图片

    在Android开发中,"拍照或本地获取图片"是常见的用户交互功能,允许用户通过相机拍摄新照片或从设备的媒体库选择现有图片。这个功能在许多应用中都非常实用,如社交应用、图像编辑应用或者任何需要用户上传图片的...

    android获取本地图片和照相机

    在Android开发中,获取本地图片和调用系统照相机是两个常见的功能,它们极大地丰富了用户的交互体验。本文将详细讲解这两个知识点。 首先,我们来探讨如何在Android应用中获取本地图片。Android提供了多种方式来...

    Android获取本地相册图片和拍照获取图片的实现方法

    Android获取本地相册图片和拍照获取图片的实现方法 Android获取本地相册图片和拍照获取图片是 Android 开发中常见的功能,本文将详细介绍实现该功能的方法。 获取本地相册图片 要获取本地相册图片,我们可以使用 ...

    拍照或者本地选取图片

    在移动应用开发中,"拍照或者本地选取图片"是一个常见的功能需求,允许用户通过相机拍摄新照片或从设备的图库中选择已有图片。这个功能广泛应用于社交媒体、文档上传、在线购物等多种场景,极大地提升了用户体验。...

    对应文件-iOS-打开照相机&打开本地相册&图片上传

    在iOS应用开发中,与“打开照相机”和“打开本地相册”相关的功能是非常常见的需求,这使得用户能够方便地捕获新照片或者选择已有的图像进行上传。本篇文章将详细阐述如何在iOS应用中实现这些功能,并涵盖图片上传的...

    android从相册或者照相获取图片,完全实用

    以上就是实现"android从相册或者照相获取图片,完全实用"这一功能所涉及的核心技术点。开发者需要熟练掌握Intent机制、权限管理、图片处理以及UI设计等方面的知识,以创建稳定、易用且兼容性强的应用。在实际开发中...

    Android-实现炫酷的获取本地图片和相机拍照图片-自定义组件

    本文将深入探讨如何实现一个炫酷的获取本地图片和通过相机拍照的自定义组件,适用于Android开发中的图片加载和展示。 一、Android权限管理 在Android系统中,访问本地图片库或使用相机功能需要申请相应的权限。在...

    相机或本地库获取图片资源

    在Android应用开发中,"相机或本地库获取图片资源"是一项常见的功能,用户可能需要从相机拍摄新照片或从手机的图库中选择已有的图片。这个过程涉及到多个知识点,包括用户权限管理、图片的获取与处理、Bitmap的使用...

    android获取拍照图片、本地图片简单实现!

    在Android应用开发中,获取拍照图片和选择本地图片是常见的用户交互需求,这些功能可以用于创建个人资料、发表状态或者上传附件等。本教程将详细解释如何实现这两个功能。 首先,我们来了解一下如何调用系统相机...

    读取相册,相册剪切,拍照获取图片,拍照剪切

    在移动应用开发中,尤其是涉及到图像处理的场景,"读取相册,相册剪切,拍照获取图片,拍照剪切"是常见的功能需求。这些功能涵盖了用户与手机相册的交互、图像的裁剪以及拍摄新照片后进行编辑的过程。下面我们将详细...

    android本地图片获取和照相机使用

    在Android开发中,图片的获取和照相机的使用是两个重要的功能模块,广泛应用于各种应用程序,如社交网络、相册应用等。以下是对这两个知识点的详细讲解。 首先,我们来看如何在Android中获取本地图片: 1. **...

    Android-模仿微信拾取图片图片截取拍照获取图片

    在Android应用开发中,"Android-模仿微信拾取图片图片截取拍照获取图片"是一个常见的需求,主要用于实现用户在应用内选择、截图或拍摄图片的功能。这个标题涉及到的知识点主要包含以下几个方面: 1. **多媒体文件...

    WPF调用本地摄像头拍照并保存为图片

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 应用程序中调用本地摄像头进行拍照,并将拍摄的照片保存为.jpg格式的图片。这个过程涉及到几个关键的技术点,包括访问硬件设备、捕获视频流...

Global site tag (gtag.js) - Google Analytics