編輯:Android開發教程
系統已經有的東西,如果我們沒有新的需求的話,直接調用是最直接的。下面講講調用系統相機拍照並保 存圖片和如何調用系統相冊的方法。
首先看看調用系統相機的核心方法:
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, 100);
相機返回的數據通過下面的回調方法取得,並處理
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAMERA && resultCode == Activity.RESULT_OK && null != data){
Bundle bundle = data.getExtras();
//獲取相機返回的數據,並轉換為圖片格式
Bitmap bitmap = (Bitmap)bundle.get("data");
}
}
下面是調用系統相冊並取得照片的方法:
Intent picture = new Intent (Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(picture, 101);
或者
intent = new Intent();intent.setType("image/*");intent.setAction (Intent.ACTION_GET_CONTENT);((Activity) context).startActivityForResult(intent, 101);
下面是相應的回調方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 101 && resultCode == Activity.RESULT_OK && null != data){
Uri selectedImage = data.getData();
String[] filePathColumns={MediaStore.Images.Media.DATA};
Cursor c = this.getContentResolver().query(selectedImage, filePathColumns, null,null,
null);
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePathColumns[0]);
String picturePath= c.getString(columnIndex);
c.close();
}
}
或者
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case 101:
Uri uri = data.getData();
Cursor cursor = this.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 圖片編號
String imgPath = cursor.getString(1); // 圖片文件路徑
String imgSize = cursor.getString(2); // 圖片大小
String imgName = cursor.getString(3); // 圖片文件名
cursor.close();
Bitmap bitmap = BitmapFactory.decodeFile(imgPath);
break;
default:
return;
}
}
}
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
android LinearLayout和RelativeLayout實現精確布局
先明確幾個概念的區別:padding margin:都是邊距的含義,關鍵問題得明白是什麼相對什麼的邊距padding:是 控件的內容相對控件的邊緣的邊距.margin &
Android美化:點九
一、“點九”是andriod平台的應用軟件開發裡的一種特殊的圖片形式,文件擴展名為:.9.png智能手機中有自動橫屏的功能,同一幅界面會在隨著手機
Android ApiDemos示例解析(46):App->Voice Recognition
這個例子需要Android系統中安裝了支持RecognizerIntent.ACTION_RECOGNIZE_SPEECH的應用,比如Google的 Voice Sear
Android簡明開發教程二:安裝開發環境
前面Android簡明開發教程一:概述簡要的介紹了Android平台,本篇說明如何安裝搭建Android開發環境。Android開發支 持Windows (Windows