編輯:關於Android編程
說到圖像處理,第一件事就是要從手機相冊選擇圖片,然後才是處理。其實,用代碼實現從手機相冊選擇一張圖片其實非常簡單:
添加一個Button,id設為btnOpen;startActivityForResult方法如下:
//打開相冊按鈕事件偵聽器
btnOpen.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//跳轉到選擇圖片界面
startActivityForResult(new Intent("android.intent.action.PICK",
MediaStore.Images.Media.EXTERNAL_CONTENT_URI), REQUEST_GET_PHOTO);
Log.d("ee", "Image path: " + ImgPath);
}
});
onActivityResult方法如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case REQUEST_GET_PHOTO: {
if (data != null) {
Uri uri = data.getData();
Log.e("uri", uri.toString());
ContentResolver cr = this.getContentResolver();
try {
curBitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(curBitmap);
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
ImgPath = cursor.getString(columnIndex);
Log.e("Exception", ImgPath);
} catch (FileNotFoundException e) {
Log.e("Exception", e.getMessage(), e);
}
}
break;
}
}
}
}
運行程序,點擊按鈕,選擇對應的圖片,結果如下:

同時要實現分享功能也是很簡單的:
再添加一個Button,id為btnShare;實現btnShare的OnClickListener方法,在其中調用分享圖片的方法;實現分享圖片的方法;OnClickListener()方法如下:
btnShare.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//分享圖片
shareSingleImage(v,ImgPath);
}
});
其中shareSingleImage方法如下:
/**
* 分享單張圖片
*
* @param view
* @param imagePath 圖片路徑
*/
public void shareSingleImage(View view, String imagePath) {
Uri imageUri = Uri.fromFile(new File(imagePath));
Log.d("share", "uri:" + imageUri);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/*");
//跳轉到分享界面 設置分享標題
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
接下來點擊分享按鈕,會出現如下界面:

總結:選擇圖片並且分享很簡單。現在也有專門的sdk,例如:微信開發者平台,QQ開發者平台...,但是這些開發平台都需要去注冊並且需要通過審核,一般來說,不同的平台審核的時間有所不同,可能會需要一個星期左右,因此采用Android系統自帶的分享功能是十分明智的選擇。
華為麥芒5高配版怎麼樣 高配版和標配版有什麼區別
麥芒5的正面仍堅持了大黑邊的設計風格,真的很華為,那麼新款的華為麥芒5標配版和高配版有什麼區別呢?高配版如何?讓我們一起來看看吧!華為麥芒5標配版和高配版區
android從源碼帶你熟悉DigitalClock 數字時針的應用以及它的使用場景
在android如果表示數字時針一般用DigitalClock,這個類是google給我們開發者提供的一個方便的類實現數字時針的功能,現在就寫個demo,為什麼要講這個類
Android仿zaker用手向上推動的特效開發【推動門效果】(附demo源碼下載)
本文實例講述了Android仿zaker用手向上推動的特效開發。分享給大家供大家參考,具體如下:最近在商店下載了zaker ,閒暇時拿來看看新聞!發現每次打開軟件進入主界
Android中獲取sha1證書指紋數據的方法
前言在Android開發中,經常要獲取sha1證書指紋。例如:在嵌入高德地圖的時候,就需要使用這個東東。這個東西在Eclipse中可以直接獲取到,但是在Android S