歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 從Android系統圖庫中取圖片的代碼

從Android系統圖庫中取圖片的代碼

日期:2017/3/1 10:47:40   编辑:Linux編程
在自己應用中,從系統圖庫中取圖片,然後截取其中一部分,再返回到自己應用中。這是很多有關圖片的應用需要的功能。

寫了一個示例,上來就是個大按鈕,連布局都不要了。最終,用選取圖片中的一部分作為按鈕的背景。

這裡需要注意幾點:

  • 從圖庫中選取出來保存的圖片剪輯,需要保存在sd卡目錄,不能保存在應用自己的在內存的目錄,因為是系統圖庫來保存這個文件,它沒有訪問你應用的權限;
  • intent.putExtra("crop", "true")才能出剪輯的小方框,不然沒有剪輯功能,只能選取圖片;
  • intent.putExtra("aspectX", 1),是剪輯方框的比例,可用於強制圖片的長寬比。
  1. package com.easymorse.gallery;
  2. import java.io.File;
  3. import Android.app.Activity;
  4. import android.content.Intent;
  5. import android.graphics.drawable.Drawable;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. public class GalleryActivity extends Activity {
  12. private static int SELECT_PICTURE;
  13. private File tempFile;
  14. Button button;
  15. /** Called when the activity is first created. */
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. this.tempFile=new File("/sdcard/a.jpg");
  20. button = new Button(this);
  21. button.setText("獲取圖片");
  22. button.setOnClickListener(new OnClickListener() {
  23. @Override
  24. public void onClick(View v) {
  25. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  26. intent.setType("image/*");
  27. intent.putExtra("crop", "true");
  28. // intent.putExtra("aspectX", 1);
  29. // intent.putExtra("aspectY", 2);
  30. intent.putExtra("output", Uri.fromFile(tempFile));
  31. intent.putExtra("outputFormat", "JPEG");
  32. startActivityForResult(Intent.createChooser(intent, "選擇圖片"),
  33. SELECT_PICTURE);
  34. }
  35. });
  36. setContentView(button);
  37. }
  38. @Override
  39. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  40. if (resultCode == RESULT_OK) {
  41. if (requestCode == SELECT_PICTURE) {
  42. button.setBackgroundDrawable(Drawable.createFromPath(tempFile
  43. .getAbsolutePath()));
  44. }
  45. }
  46. }
  47. }
Copyright © Linux教程網 All Rights Reserved