0

アプリに画像プレビューを表示したい:ユーザーがリストビューのアイテムを押すと(各アイテムはSDカードに保存されている画像へのパスです)、この画像のように利用可能なスペースに引き伸ばされた画像プレビューが表示されます(画像スペース黒で、基になるアプリはまだ部分的に表示されていますが、灰色です):

ここに画像の説明を入力してください

ユーザーが戻るを押すと画像が消えます。画像表示だけの活動をしようと思ったのですが、写真で結果を出す方法がわかりません...

編集:

これが私がこれまでにしたことです:

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>

3)アクティビティonCreateメソッド:

super.onCreate(savedInstanceState);
setContentView(R.layout.image_preview);
String filepath = getIntent().getStringExtra("image_filepath");  
((ImageView)findViewById(R.id.imageView)).setImageBitmap(getBitmap(filepath));

ここで、getBitmapは、ファイルパスからビットマップを取得するプライベートメソッドです。

問題は、ダイアログのサイズを制御できないことです。ダイアログの幅と高さは、含まれている画像のサイズに依存しているようです...上/右/左/下の余白は言うまでもありません...

解決済み(多分):レイアウトファイルを次のように変更しました:

<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"/>

効果を得るために許可された正方形に幅/高さを設定する...私の質問は:それはすべての電話で機能しますか?それとも私のものだけに適していますか?

4

4 に答える 4

1

新しいを作成してこれを行う場合はActivity、レイアウトパラメータをに設定してwrap_content、他のアクティビティの上に表示されるが、画面に完全には収まらないようにする必要があります。また、テーマをTheme.Dialogまたは継承されたテーマとして設定すると、2番目のアクティビティが少し暗くなり、アクティビティがダイアログのように表示されます。

fill_parent表示したとおりの正確な結果が必要な場合は、レイアウトパラメータをに配置し、マージンを追加することもお勧めします(このソリューションが機能するかどうかはわかりません)。

于 2012-08-30T13:05:23.330 に答える
1

あなたのベストショットは、ダイアログに画像を表示することです

その後、表示をさらに制御したい場合は、テーマを設定します

于 2012-08-30T13:03:35.667 に答える
0

これは、ダイログのようなアクティビティを作成するAPIデモからのものです。これを試してください

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);
}
}
于 2012-08-30T13:10:57.527 に答える
0

解決済み、メイン投稿に入力された解決策は正常に機能しているようです!

于 2012-08-31T09:43:31.657 に答える