2012-08-30 53 views
0

我想在我的應用程序上顯示圖像預覽:當用戶在列表視圖中按下某個項目時(每個項目是存儲在SD卡中的圖像的路徑)圖像預覽出現,拉伸在該畫面中的可用空間,像(圖像空間是黑色的,潛在的應用程序,仍然部分地可見,是灰色):以這種方式通過應用程序顯示圖像

enter image description here

當用戶按下回圖像消失。 我想對剛纔的圖像顯示的活動,但我不知道如何獲得在圖片中的結果...

編輯:

確定這裏就是我迄今所做的:

1)清單:

<activity 
     android:name=".ImageDialogActivity" android:theme="@android:style/Theme.Dialog"> 
</activity> 

2)佈局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
    > 
    <ImageView android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
    </LinearLayout> 
super.onCreate(savedInstanceState); 
setContentView(R.layout.image_preview); 
String filepath = getIntent().getStringExtra("image_filepath"); 
((ImageView)findViewById(R.id.imageView)).setImageBitmap(getBitmap(filepath)); 

其中getBitmap是給我從一個文件路徑的位圖的私有方法:3)活動onCreate方法。

問題是,我沒有在對話框的尺寸控制:對話框的寬度和高度似乎依賴於包含圖像的...更何況頂部/左/右/下頁邊距...

解決(也許): 我修改佈局文件是這樣的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="200dp" 
android:layout_height="200dp" 

>

<ImageView android:id="@+id/imageView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="centerInside"/> 

將寬度/高度設置爲允許獲得該效果的平方......我的問題是:它適用於每部手機嗎?還是僅適用於我的手機?

+0

檢查api演示 - 在v2.2 activitl像對話框我認爲這將有助於 –

+0

我可以有一個鏈接嗎?我做了一些與主題=對話框,但結果對話框太小 – user1610075

+0

也許是因爲它沒有內容... – Flawyte

回答

1

你最好的拍攝是在一個Dialog

,以顯示您的圖片如果你再想要對顯示的更多控制,theme it

1

如果你想創建一個新Activity要做到這一點,你應該設置其佈局參數爲wrap_content,因此它會出現在其他活動之上,但不完全適合屏幕。此外,通過將其主題設置爲Theme.Dialog或繼承的主題,您的第二個活動將會變得更暗一些,並且您的活動將顯示爲一個對話框。

您還應該嘗試將佈局參數設置爲fill_parent並添加邊距,如果您想要顯示的確切結果(不知道此解決方案是否可以工作)。

0

這是從API演示創建像dilog的activit試試這個

public class DialogActivity extends Activity { 
/** 
* Initialization of the Activity after it is first created. Must at least 
* call {@link android.app.Activity#setContentView setContentView()} to 
* describe what is to be displayed in the screen. 
*/ 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // Be sure to call the super class. 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_LEFT_ICON); 

    // See assets/res/any/layout/dialog_activity.xml for this 
    // view layout definition, which is being set here as 
    // the content of our screen. 
    setContentView(R.layout.dialog_activity); 

    getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, 
      android.R.drawable.ic_dialog_alert); 
} 
} 
+0

它似乎沒有工作......我甚至在活動標題上看到一個提醒圖標,所以我想這不是一個好的做法:( – user1610075

+0

你只是設置該圖標getWindow()。setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android .R.drawable.ic_dialog_alert); 你避免那裏不會是一個圖標(請閱讀代碼,並試圖瞭解發生了什麼) –

0

解決,在主後進入解決方案似乎做工精細!

相關問題