我想在我的应用上显示图像预览:当用户按下列表视图中的项目时(每个项目是存储在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"
&GT;
<ImageView android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerInside"/>
将宽度/高度设置为正方形可以获得效果...我的问题是:它是否适用于每部手机?或者它适合我的?
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您想通过创建新Activity
来执行此操作,则应将其布局参数设置为wrap_content
,以使其显示在其他活动的上方,但不会完全适合屏幕。此外,通过将其主题设置为Theme.Dialog
或继承的主题,您的第二个活动将会更暗,您的活动将显示为对话框。
您还应该尝试将布局参数设置为fill_parent
并添加边距,如果您想要显示的确切结果(不知道此解决方案是否可行)。
答案 2 :(得分: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);
}
}
答案 3 :(得分:0)
解决了,在主帖中输入的解决方案似乎工作正常!