Android-從相簿中選擇圖片顯示出來
一、選擇圖片
定義Intent跳轉到特定相簿的Uri下挑選,然後將挑選結果返回給Activity
用到startActivityForResult
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RESULT);
然後在onActivityForResult儲存二、圖片縮放
這裡講的很詳細
照它所說有3種方法:
第一種是BitmapFactory和BitmapFactory.Options,同比例縮放,但是效率高
第二種是使用Bitmap加Matrix來縮放,能夠不同比例,但是效率低
第三種是用2.2新加的類ThumbnailUtils來做,這方法不懂,好複雜。。
我用第一種,將圖片放在Imageview中
private void showPhoto(ImageView photo){ String picturePath = target.getInfo(Target.TargetPhotoPath);// 圖片的uri if(picturePath.equals("")) return; // 縮放圖片, width, height 按相同比例縮放圖片 BitmapFactory.Options options = new BitmapFactory.Options(); // options 設為true時,構造出的bitmap沒有圖片,只有一些長寬等配置資訊,但比較快,設為false時,才有圖片 options.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeFile(picturePath, options); int scale = (int)( options.outWidth / (float)300); if(scale <= 0) scale = 1; options.inSampleSize = scale; options.inJustDecodeBounds = false; bitmap = BitmapFactory.decodeFile(picturePath, options); photo.setImageBitmap(bitmap); photo.setMaxHeight(350); }
三、程式碼
public class RemindActivity extends Activity { private ImageView photo; private static final int RESULT = 1; Target target; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_remind); photo = (ImageView)findViewById(R.id.photo); target = new Target(this); showPhoto(photo); photo.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Dialog dialog = new AlertDialog.Builder(RemindActivity.this) .setTitle("從相簿裡選擇照片").setMessage("確定要更換照片?").setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, RESULT); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.cancel(); } }).create(); dialog.show(); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(requestCode == RESULT && resultCode == RESULT_OK && data != null){ Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); target.setInfo(Target.TargetPhotoPath, picturePath); showPhoto(photo); } } private void showPhoto(ImageView photo){ String picturePath = target.getInfo(Target.TargetPhotoPath); if(picturePath.equals("")) return; // 縮放圖片, width, height 按相同比例縮放圖片 BitmapFactory.Options options = new BitmapFactory.Options(); // options 設為true時,構造出的bitmap沒有圖片,只有一些長寬等配置資訊,但比較快,設為false時,才有圖片 options.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeFile(picturePath, options); int scale = (int)( options.outWidth / (float)300); if(scale <= 0) scale = 1; options.inSampleSize = scale; options.inJustDecodeBounds = false; bitmap = BitmapFactory.decodeFile(picturePath, options); photo.setImageBitmap(bitmap); photo.setMaxHeight(350); } }
相關推薦
Android-從相簿中選擇圖片顯示出來
一、選擇圖片 定義Intent跳轉到特定相簿的Uri下挑選,然後將挑選結果返回給Activity 用到startActivityForResult Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Imag
Android從相簿中選擇圖片顯示出來
下面的兩篇部落格我是選擇其中的一部分使用的。大家可以自己試試。 第一篇:http://blog.csdn.net/jackyguo1992/article/details/26729107 一、選擇圖片 定義Intent跳轉到特定相簿的Uri下挑選,然後將挑選結果返
Android從相簿中選擇圖片並作為Activity的背景(主題)
實現邏輯: 首先獲取本地相簿圖片的絕對路徑URL,儲存; 通過圖片的絕對路徑轉成bitmap; 設背景,結束。 許可權: <uses-permission android:
android---從相簿中選擇圖片
private ImageView picture; public static final int CHOOSE_PHOTO=2; picture=(ImageView)findViewById(R.id.imageView); run_Permissions();
Android中呼叫攝像頭拍照儲存,並在相簿中選擇圖片顯示
我的配置是: android手機版本是7.0 android studio是3.1 android平臺是9.0 我的測試都是在真機上進行的。 首先來看程式碼: package com.example.sunshunli.cameraalbumtest; import a
ionic呼叫照相機或者從相簿中選擇圖片進行上傳
開發App的時候會經常用到拍照上傳留作憑證,或者從相簿中選擇。 相關外掛: 相機:cordova-plugin-camera 2.4.1 相簿:cordova-plugin-image-picker 1.1.1 檔案:cordova-plugin-file 許可權:cordova-plugi
Android從相簿中選取圖片上傳到阿里雲OSS
在開發APP軟體中,boss突然提出想在軟體中新增一個多張照片上傳的功能,作為菜鳥的我,琢磨了兩天,才弄出來,今天特地貼出來。本篇部落格主要介紹的是將本地圖片上傳到伺服器的方法技巧。主要技術點是: 一、運用第三方可以從相簿中選取多張圖片。 二、將圖片
拍照上傳圖片與從相簿中選擇圖片上傳
手機拍照與上傳圖片是APP中很常用的功能。 我們先寫個佈局,然後程式碼實現。 MediaStore.ACTION_IMAGE_CAPTURE); //呼叫相機 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,
呼叫攝像頭和相簿(呼叫攝像頭拍照和從相簿中選擇圖片)
public class MainActivity extends Activity { public static final int TAKE_PHOTO=1; public static final int CROP_PHOTO=0; public static
android 呼叫相簿中選擇的圖片
package cn.xzmd.diaoyong.photo; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.BitmapF
呼叫Android系統自帶相機拍照,從相簿中獲取圖片(相容7.0系統)
一,前言: 在日常的手機應用開發過程中,經常會遇到上傳圖片的需求,像上傳頭像之類的,這就需要呼叫系統的相機,相簿獲取照片。但是在Android 系統7.0之後認為這種操作是不安全的,這篇文章主要就是記錄7.0獲取照片遇到的問題。 二,FileProvider介紹 都
Android呼叫系統相機拍照,從相簿中選擇照片,呼叫系統攝像機錄影
最近在Android Studio上折騰程式碼,昨天編譯器又很不給面子的報錯了: Error type 3 Error: Activity class {com.example.myapplication/com.example.myapplication
ionic拍照上傳圖片與從檔案中選擇圖片
本文主要使用cordova實現拍照上傳,拍照上傳或從資料夾中選擇上傳圖片 流程:拍照或選擇圖片===>獲取本機路徑==>向伺服器上傳圖片,獲取伺服器上圖片路徑 一、環境準備 安裝 cordova-plugin-camera 外掛 &n
android從通訊錄中選擇聯絡人並讀取號碼
1.Manifest檔案中新增許可權配置: <uses-permission android:name="android.permission.WRITE_CONTACTS"/> <uses-permission android:name
Android-->拍照/相簿選擇照片(從Uri中獲取圖片路徑)
對於一個APP來說, 照片選擇是經常會用到的功能. 拍照獲取照片 此方法需要指定照片的路徑, 這是最簡單的獲取照片的方式了; /** * 拍照獲取圖片, imageUri.getPath() 圖片路徑 */ public static void g
android從相簿選擇圖片和拍照選擇圖片
在android開發中選擇圖片的方式大致可以分類兩種,一種是從手機相簿獲取,另外一種則是通過呼叫手機拍照獲得 手機相簿中獲取,這種方式需要讀取儲存卡的許可權 <uses-permission android:name="android.permission.REA
[Android] WebView中拍照或從相簿上傳圖片
WebView 上傳圖片, 想必很多人都碰到過這樣的場景. 而且 WebView 在4.4前後的區別非常大, 比如對URL跳轉的格式, 對JS的注入宣告等等, 4.4以後的WebView 已經是chromium核心, 有多強大就無需我贅述. 說這些, 其實也
呼叫系統相機拍照獲取圖片或者從相簿中呼叫本地圖片顯示問題
需求是這樣的:開啟系統或者第三方相機app拍照,然後使用所拍照片進行處理,或者直接呼叫系統或者第三方相簿app,選擇圖片返回使用。需求很簡單,過程很蛋疼,網上有很多方法,不過有很多不好用的地方,最後使用的這種方式還不錯,記錄一下,還是那句話,我很懶,
android 如何從系統相簿中獲取圖片
http://bbs.csdn.net/topics/390133207 需要在專案中加入一個從系統相簿中選取圖片的功能,選擇的圖片bitmap顯示出來即可,不需要圖片剪下功能網上的例子很多,我用的以下程式碼實現的Intent intent=new Intent(Inten
Android 如何從系統圖庫中選擇圖片
這幾天我都在做Android的App,同時學習它的API,我將分享一些我學到的東西,比如: 如何從系統圖庫中選擇圖片。 首先,讓我們來看看如何將手機系統圖庫整合到你的App中,然後再從相簿中選擇圖片來做一些事。例如,在Facebook的App,你就可以直接選擇手機上的圖片上