我的布局中有图像视图。我想要数据库中是否有任何图像,使我的图像视图可见,否则使我的图像视图消失。 我的图像视图在布局上有特殊的大小,当没有任何图像时,图像视图的空间存在,尽管我的图像视图不见了,但它是空的。
这是我的布局:
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大小,尽管消失了。
答案 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);
}