像機的功能

打開系統(tǒng)像機的功能

android中相機的使用很多,但是有時候我們還是會遇到一些坑,沒辦法填平,這里記錄一下一些有用的東西

這里是通過 調(diào)用一個意圖開打開的

    /**  
       * @param view  
       */  
    public void startCamera(View view){  
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
        startActivity(intent);  
    }  

當我們自己的應(yīng)用程序在清單文件中添加

<intent-filter>  
    <action android:name="android.media.action.IMAGE_CAPTURE" />  
    <category android:name="android.intent.category.DEFAULT" >  
    </category>  
</intent-filter> 

那么當別的應(yīng)用程序調(diào)用這個意圖來打開像機的時候,我們的這個應(yīng)用也會出現(xiàn)在他調(diào)用像機的選擇框中

獲取系統(tǒng)橡機拍攝的照片

/* 打開系統(tǒng)像機的功能  
 * @param view  
 */  
public void startCamera(View view){  
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
    startActivityForResult(intent, 1234);  
}  

復(fù)寫activity的方法 onActivityResult 涮俄,獲取拍攝照片

@Override  
rotected void onActivityResult(int requestCode, int resultCode, Intent arg2) {  
super.onActivityResult(requestCode, resultCode, arg2);  
if (resultCode== RESULT_OK) {  
    if (resultCode == 1234) {  
        Bundle bundle = arg2.getExtras();  
        Bitmap bitmap =  (Bitmap) bundle.get("data");  
    }  
}  

打開系統(tǒng)相機禽拔,并獲取高清照片

//設(shè)置自定義存儲路徑  
mFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/systemCemer";  
//存儲文件夾操作  
File outFilePath = new File(mFilePath);  
if (!outFilePath.exists()) {  
    outFilePath.mkdirs();  
}  
//設(shè)置自定義照片的名字  
String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());  
mFilePath = mFilePath + "/" + fileName + ".jpg";  
  
File outFile = new File(mFilePath);  
Uri uri = Uri.fromFile(outFile);  
//拍照  
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);  
startActivityForResult(intent, 305);  

獲取照片的操作在Activity中

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

if (resultCode==RESULT_OK){  
            if (requestCode==305){  
                if (data!=null){                  
            }else {  
                  
                if (BuildConfig.DEBUG) Log.d("SystemCemerActivity", mFilePath);  
                 
                final Bitmap bitmap = loadingImageBitmap(mFilePath);  
                if (bitmap!=null){  
                   mImageView.setImageBitmap(bitmap);  
                }  
            }  
        }  
    }

這里面依據(jù)image 的path來獲取了一個bitmap對象室叉,然后將其設(shè)置給imageview來顯示,使用到的loadingImageBitmap方法是用來加載高清大圖的適當縮放功能的方法

public Bitmap loadingImageBitmap(String imagePath) {  
       /** 
        * 獲取屏幕的寬與高 
        */  
       final int width = getWindowManager().getDefaultDisplay().getWidth();  
       final int height = getWindowManager().getDefaultDisplay().getHeight();  
       /** 
        * 通過設(shè)置optios來只加載大圖的尺寸 
        */  
       BitmapFactory.Options options = new BitmapFactory.Options();  
       options.inJustDecodeBounds = true;  
       Bitmap bitmap = null;  
       try {  
           bitmap = BitmapFactory.decodeFile(imagePath, options);  
           /** 
            * 計算手機寬高與顯示大圖的寬高野来,然后確定縮放有比例 
            */  
           int widthRaio = (int) Math.ceil(options.outWidth/(float)width);  
           int heightRaio = (int) Math.ceil(options.outHeight/(float)height);  
           if (widthRaio>1&&heightRaio>1){  
               if (widthRaio>heightRaio){  
                   options.inSampleSize = widthRaio;  
               }else {  
                   options.inSampleSize = heightRaio;  
               }  
           }  
           /** 
            * 設(shè)置加載縮放后的圖片 
            */  
           options.inJustDecodeBounds = false;  
           bitmap = BitmapFactory.decodeFile(imagePath, options);  
       } catch (Exception e) {  
           e.printStackTrace();  
       }  
  
       return bitmap;  
   }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曼氛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舀患,更是在濱河造成了極大的恐慌,老刑警劉巖餐抢,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件低匙,死亡現(xiàn)場離奇詭異,居然都是意外死亡顽冶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門绞呈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來间景,“玉大人,你說我怎么就攤上這事秉溉。” “怎么了召嘶?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵哮缺,是天一觀的道長。 經(jīng)常有香客問我铛只,道長,這世上最難降的妖魔是什么淳玩? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任非竿,我火速辦了婚禮,結(jié)果婚禮上承匣,老公的妹妹穿的比我還像新娘。我一直安慰自己韧骗,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布众眨。 她就那樣靜靜地躺著容诬,像睡著了一般娩梨。 火紅的嫁衣襯著肌膚如雪览徒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天纽什,我揣著相機與錄音躲叼,去河邊找鬼。 笑死枫慷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的探孝。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼顿颅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洗鸵?” 一聲冷哼從身側(cè)響起绍些,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤滔驶,失蹤者是張志新(化名)和其女友劉穎卿闹,沒想到半個月后萝快,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡揪漩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年奄容,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昂勒。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡舟铜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谆刨,到底是詐尸還是另有隱情,我是刑警寧澤刁岸,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布她我,位于F島的核電站,受9級特大地震影響番舆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜合蔽,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一拴事、第九天 我趴在偏房一處隱蔽的房頂上張望沃斤。 院中可真熱鬧刃宵,春花似錦、人聲如沸哮针。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛮放,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞻想,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工蘑险, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岳悟,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓和屎,卻偏偏與公主長得像春瞬,于是被迫代替她去往敵國和親柴信。 傳聞我的和親對象是個殘疾皇子宽气,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容