在我下面的代码中,如果项目有图片,那就太好了。但是如果它是空的,那么项目图片看起来是70dp大小的空框。我希望如果项目不包含图片,那么自动用TextView填充空框,所以如果它是空的,那么图片就没有ImageView,只有TextView。我试图设置ImageView的宽度大小andoid:layout_width="wrap_content",它符合我的要求,但图片的大小参差不齐。有宽的和小的。所以我把它设置成70,使它看起来平坦。
这是我的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<ImageView
android:id="@+id/logo_article"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip" />
<TextView
android:id="@+id/title_article"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/logo_article"
android:gravity="center_vertical"
android:text="Title Article" />
</RelativeLayout>
我从数据库中获取项目,并将其存储到简单的适配器中,代码为java:
String[] from = { "title", "logo" };
int[] to = { R.id.title_article, R.id.logo_article };
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),listkatdb,R.layout.per_item_list, from, to);
kategoriListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
谢谢。
不要修改图像视图大小。将图像宽度更改为CCD_ 1。若图像具有显示图像测试权的手段。没有图像意味着图像宽度0dip文本自动出现在左侧。试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<ImageView
android:id="@+id/logo_article"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip" />
<TextView
android:id="@+id/title_article"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/logo_article"
android:gravity="center_vertical"
android:text="Title Article" />
</RelativeLayout>
如果为空,则将ImageView的可见性设置为GONE
如果没有要显示的内容,请使用logo_article.setVisibility(View.GONE);
。就是这样。
如果没有图像,则需要将ImageView的setVisibility设置为GONE,然后TextView将填充整个宽度。
if(isImageAvailable)
{
iv.setVisibility(View.VISIBLE);
}
else
{
iv.setVisibility(View.GONE);
}
当您发现ImageView对GONE 没有图像集可见性时,通过编程
ImageView img = (ImageView)findViewById(R.id.logo_article);
// logic here to find image
//if no img
img.setVisibility(View.GONE);