1. 程式人生 > >Android_5_學習《第一行代碼》的使用攝像頭和相冊無法顯示圖片問題解決

Android_5_學習《第一行代碼》的使用攝像頭和相冊無法顯示圖片問題解決

解決方法 andro user mage 一行代碼 進入 選中 == 無法顯示

解決方法參照網上教程:

學習《第一行代碼》的使用攝像頭和相冊無法顯示圖片總結

在《第一行代碼》的8.3小節調用攝像頭和相冊時,發現書上把代碼敲完後,可以調用攝像頭拍照,

勾選確認後回到APP頁面時,並沒有顯示圖片,選擇相冊圖片也是一樣,可以打開相冊,

選中相片返回後也是無法在APP上顯示,解決過程如下:

書上原代碼:(粘貼自網上)

技術分享圖片

只說顯示的問題吧,註意到進入顯示有:

這麽一個限定條件,而RESULT_OK = -1 ,那麽requestCode是多少呢?前面是switch(requestCode) --> 然後是case TAKE_PHOTO: TAKE_PHOTO=1;

結果邏輯就變成這樣,當requestCode = TAKE_PHOTO = 1時,進入到case裏面,進入case之後, requestCode = 1 != RESULT_OK = -1 所以,

進入不了顯示圖片的程序裏,自然也就無法顯示圖片了。

同理,選中相冊中的相片也是一樣,case CHOOSE_PHOTO: 這裏CHOOSE_PHOTO = 2; 也不等於 -1 ,所以也無法顯示相片。

解決過程:

一開始將case TAKE_PHOTO中的 if ( resultCode == RESULT_OK )

改為 if ( resultCode == RESULT_FIRST_USER) 結果拍照可以顯示圖片,

但是在case CHOOSE_PHOTO: 中也這樣改選圖片之後還是不行,

仔細看一下發現RESULT_FIRST_USER = 1;

TAKE_PHOTO值一樣,因此,第一個case可以跑進那個if 裏面,第二個不行。

接下來,直接把第二的case中的 if( result == RESULT_OK ) 改為 if ( result == 2 )

結果選擇相片也是可以正常顯示了。

到這裏問題解決了。

解決完之後正確代碼:

技術分享圖片

該作者還做了個嘗試,因為如程序所示,通過switch( resultCode )已經有關於返回結果的刪選,

這個if ( resultCode == RESULT_OK )

是不是可以去掉?試一下,去調後也是可以正常顯示圖片的。

Android_5_學習《第一行代碼》的使用攝像頭和相冊無法顯示圖片問題解決