У меня есть представление изображения в моем макете. Я хочу, если в моей базе данных есть какое-либо изображение, сделать мое изображение видимым, иначе мое изображение исчезнет. Мое изображение-представление имеет особый размер в макете, когда нет никакого изображения, пространство изображения-представления существует, и оно пусто, хотя мое изображение-представление исчезло.
вот мои макеты:
<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>
>
и вот как проверить видимость и видимость.
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);
} else {
img.setVisibility(View.GONE);
}
Таким образом, если у меня нет изображения, он показывает размер моего изображения, хотя его нет.




Первый способ:
Вы должны использовать 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);
}
Если вы используете статический размер, вы не можете решить свою проблему, возможно, вы можете установить свой imageView между relativeLayout и установить статический размер в relaytiveLayout и установить wrap_content в свой imageView.
поэтому, если я это сделаю, я должен сделать свой относительный макет видимым и исчезнуть. в чем разница? Могу ли я говорить по-персидски? Я думаю, что вы тоже можете.
Я думаю, что вы можете сделать это и программно, добавил я.
Изменить эту строку
<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);
}
Я проверяю это, но ничего не меняется. Я должен дать статический размер моему изображению, и это проблема. Я действительно не знаю, что мне делать?
@balvin Сделайте одну вещь, измените начальную видимость main_matn_img на видимую и обработайте видимость через код.
Нет, я должен указать размер моего изображения.