以编程方式设置imageview隐藏和可见

时间:2019-02-24 08:06:57

标签: java android imageview

我的布局中有图像视图。我想要数据库中是否有任何图像,使我的图像视图可见,否则使我的图像视图消失。 我的图像视图在布局上有特殊的大小,当没有任何图像时,图像视图的空间存在,尽管我的图像视图不见了,但它是空的。

这是我的布局:

Future<File> writeData(List content) async {
    final file = await localFile;
    jsonText = jsonEncode(content.notes);
    print("This text will be wirtten to file: " + jsonText);
    return file.writeAsString(jsonText);
}

>

这里是检查可见和可见的方法。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/addbtn"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/title"
    android:layout_centerHorizontal="true">

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="15dp"
        android:layout_marginTop="3dp">

        <LinearLayout

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical">

                <ImageView
                    android:id="@+id/main_matn_img"
                    android:layout_width="200dp"
                    android:layout_height="150dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_marginLeft="5dp"
                    android:visibility="gone"
                    android:layout_marginRight="5dp"
                    android:layout_marginTop="10dp" />

            <TextView
                android:id="@+id/main_matn_matn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginBottom="15dp"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:layout_marginTop="30dp"
                android:gravity="right"
                android:text="TextView"
                android:textColor="#000"
                android:textDirection="rtl"
                android:textSize="20sp"

                />


        </LinearLayout>
    </ScrollView>
</RelativeLayout>

这样,如果我没有任何图片,它就会显示我的imageview大小,尽管消失了。

2 个答案:

答案 0 :(得分:1)

更改此行

<ImageView
                    android:id="@+id/main_matn_img"

                    android:visibility="visible"
</ImageView>


     String p = db.getpic("tbl_book", sea, Name, page3 + "");
        if (p != null && p.length()>0) {
 img.setVisibility(View.VISIBLE);
            int ImageResource = getResources().getIdentifier(p, "drawable", getPackageName());
            img.setImageResource(ImageResource);


        } else {
            img.setVisibility(View.GONE);
        }

答案 1 :(得分:0)

第一种方式:

您必须在imageView中使用wrap_content

<ImageView
                android:id="@+id/main_matn_img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="5dp"
                android:visibility="gone"
                android:layout_marginRight="5dp"
                android:layout_marginTop="10dp" />

第二种方式:

您可以像这样通过编程方式处理它:

 String p = db.getpic("tbl_book", sea, Name, page3 + "");

    if (p != null) {
        int ImageResource = getResources().getIdentifier(p, "drawable", getPackageName());
        img.setImageResource(ImageResource);
        img.setVisibility(View.VISIBLE);
img.getLayoutParams().height = 100;
            img.getLayoutParams().width=100;

    } else {
  img.getLayoutParams().height = 0;
            img.getLayoutParams().width=0;
        img.setVisibility(View.GONE);
    }