歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

在自己應用中,從系統圖庫中取圖片,然後截取其中一部分,再返回到自己應用中。這是很多有關圖片的應用需要的功能。

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

這裡需要注意幾點:

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