欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android从系统图库中取图片的实例代码

程序员文章站 2023-11-14 08:04:22
本文实例讲述了android从系统图库中取图片的实现方法。分享给大家供大家参考。具体如下: 在自己应用中,从系统图库中取图片,然后截取其中一部分,再返回到自己应用中。这是...

本文实例讲述了android从系统图库中取图片的实现方法。分享给大家供大家参考。具体如下:

在自己应用中,从系统图库中取图片,然后截取其中一部分,再返回到自己应用中。这是很多有关图片的应用需要的功能。

写了一个示例,上来就是个大按钮,连布局都不要了。最终,用选取图片中的一部分作为按钮的背景。
这里需要注意几点:

① 从图库中选取出来保存的图片剪辑,需要保存在sd卡目录,不能保存在应用自己的在内存的目录,因为是系统图库来保存这个文件,它没有访问你应用的权限;
② intent.putextra("crop", "true")才能出剪辑的小方框,不然没有剪辑功能,只能选取图片;
③ intent.putextra("aspectx", 1),是剪辑方框的比例,可用于强制图片的长宽比。

效果图如下:

android从系统图库中取图片的实例代码

java代码如下:

package com.easymorse.gallery;
import java.io.file;
import android.app.activity;
import android.content.intent;
import android.graphics.drawable.drawable;
import android.net.uri;
import android.os.bundle;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
public class galleryactivity extends activity {
 private static int select_picture;
 private file tempfile;
 button button;
 /** called when the activity is first created. */
 @override
 public void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  this.tempfile=new file("/sdcard/a.jpg");
  button = new button(this);
  button.settext("获取图片");
  button.setonclicklistener(new onclicklistener() {
   @override
   public void onclick(view v) {
    intent intent = new intent(intent.action_get_content);
    intent.settype("image/*");
    intent.putextra("crop", "true");
    // intent.putextra("aspectx", 1);
    // intent.putextra("aspecty", 2);
    intent.putextra("output", uri.fromfile(tempfile));
    intent.putextra("outputformat", "jpeg");
    startactivityforresult(intent.createchooser(intent, "选择图片"),
      select_picture);
   }
  });
  setcontentview(button);
 }
 @override
 protected void onactivityresult(int requestcode, int resultcode, intent data) {
  if (resultcode == result_ok) {
   if (requestcode == select_picture) {
    button.setbackgrounddrawable(drawable.createfrompath(tempfile
      .getabsolutepath()));
   }
  }
 }
}

希望本文所述对大家的android程序设计有所帮助。