1

我想做一个文件管理器之类的东西。我有一个文件列表,当我单击文件时,如果它是图像,我必须在预览中显示它。所以,我做了一个表格布局,其中有两行:第一行是包含所有文件的列表视图,第二行是我想要显示图像的图像视图。问题是当我将图像添加到图像视图时它根本不会出现。这是布局:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ListView
            android:id="@+id/listView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="bottom" >

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </ImageView>
    </TableRow>
</TableLayout>

这是我将图像添加到 ImageView 的地方(我必须这样做,因为我的文件在 sdcard 上)

ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageURI(Uri.fromFile(file));

有人可以告诉我我做错了什么吗?谢谢

4

1 回答 1

3

你最好使用一个LinearLayout. 这样会更有效率。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

但是如果你必须使用 a TableLayout(我看不出你的样本有任何理由),你可以这样使用:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <ListView
            android:id="@+id/listView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="bottom" >

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" >
        </ImageView>
    </TableRow>

</TableLayout>
于 2013-11-11T20:06:30.857 回答