1
快問圖片瀏覽,這是我的佈局:Android的 - 不顯示照片
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/our_photo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/image_description"/>
<Button
android:id="@+id/our_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_photo"
android:onClick="TakePhoto" />
<Button
android:id="@+id/load_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/show_photo"
android:onClick="ShowPhoto" />
<TextView
android:id="@+id/our_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/file_directory" />
</LinearLayout>
這是我的代碼,我試圖顯示從畫廊加載(像剛剛創建的圖像,所以它它會加載它 - 在調試模式下,我可以看到myBitmap對象不是null),但它不顯示任何內容。我試圖創建一個黑色的位圖,看看它是否是一個佈局缺陷,但它顯示它很好,但它目前不適用於一個文件。
public void ShowPhoto(View v) {
File imgFile = new File(mCurrentPhotoPath);
if(imgFile.exists()){
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
try {
BitmapFactory.decodeStream(new FileInputStream (imgFile),null,o);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
//The new size we want to scale to
final int REQUIRED_SIZE_X=240;
final int REQUIRED_SIZE_Y=400;
//Find the correct scale value. It should be the power of 2.
int scale=1;
while(o.outWidth/scale/2>=REQUIRED_SIZE_X && o.outHeight/ scale/2>=REQUIRED_SIZE_Y)
scale*=2;
//Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
Bitmap myBitmap=null;
try {
myBitmap = BitmapFactory.decodeStream(new FileInputStream(imgFile), null, o2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Display display = getWindowManager().getDefaultDisplay();
Point screenSize = new Point();
display.getSize(screenSize);
//imageView.setMinimumHeight(screenSize.y/2);
//imageView.setMinimumWidth(screenSize.x/2);
imageView.setImageBitmap(Bitmap.createScaledBitmap(myBitmap, screenSize.x/2, screenSize.y/2, false));
}
在調試模式下,沒有例外等,它都進行得很順利,沒有結果。 有什麼想法?
您是否引用了圖片視圖? – moDev 2013-02-15 09:16:00
Mitesh,就是這樣!我使用imageView變量作爲全局變量,並僅在正確顯示黑色位圖的on create方法期間引用它。我現在已經提到它,它確實有效!非常感謝您提供這樣一個簡單而正確的答案!隊友的歡呼聲。 – 2013-02-15 09:24:51
@ user1619684那麼你應該接受他的答案,如果這有助於你 – Androyds 2013-02-15 09:37:26