在滚动视图中显示图像

时间:2015-04-05 07:18:06

标签: java android mysql xml

我是Android编程新手。我正在使用mysql DB为我的项目开发一个应用程序。 我有一个活动,它将显示有关活动或地点的大量信息 这个活动很长,所以我使用滚动视图。

问题是: 我想要显示一个带有标题的图像“我不知道它取决于数据库中的图像数量,所以每次我在数据库中添加一个新的图像时它将出现在此活动中”

我正在考虑使用GridView,但问题是我已经使布局可滚动了。那么我可以用什么来显示图像?

这是我的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
android:background="#eaedf1">


<LinearLayout 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/iv_event_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#efcc08"
android:gravity="right"
android:layout_marginLeft="10dp"
android:contentDescription="@string/Null"/>

<RatingBar
android:id="@+id/MyRating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/iv_event_image"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.1" />

<Button
android:id="@+id/btn_write"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignBaseline="@+id/tv_event_name"
android:layout_alignBottom="@+id/tv_event_name"
android:layout_alignParentLeft="true"
android:background="#eaedf1"
android:layout_marginLeft="10dp" 
android:drawableRight="@drawable/comment_small"/>

<Button
android:id="@+id/btn_fav"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignBaseline="@+id/tv_event_name"
android:layout_alignBottom="@+id/tv_event_name"
android:layout_alignParentLeft="true"
android:layout_marginLeft="40dp"
android:background="#eaedf1"
android:drawableRight="@drawable/fav_small"/>

<TextView
android:id="@+id/tv_event_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/MyRating"
android:layout_below="@+id/MyRating"
android:text="@string/Event_name"
android:textColor="#505152"
android:textSize="18sp" />

</RelativeLayout>

<View android:id="@+id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />

<!-- Second Row -->

<TextView
android:id="@+id/tv_rate_place"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="10dp"
android:gravity="right"
android:text="@string/Descrption" />

<TextView
android:id="@+id/tv_event_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginRight="10dp"
/>

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />

<!-- Third Row -->

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:paddingTop="10dp"
android:paddingBottom="10dp" >

<TextView
android:id="@+id/tv_End_date_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null" />

<TextView
android:id="@+id/tv_End_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/End_date"
android:layout_marginLeft="5dp" />

<TextView
android:id="@+id/tv_Start_date_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null" />

<TextView
android:id="@+id/tv_Start_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/Start_date"
android:layout_marginLeft="5dp" />



</LinearLayout>


<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />


<!-- Fourth Row -->   

<TextView
android:id="@+id/tv_pictures"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginLeft="5dp"
android:gravity="right"
android:layout_margin="10dp"
android:text="@string/pictures" />

<GridView
android:id="@+id/gv_pictures"
android:layout_width="match_parent"
android:layout_height="205dp"
android:layout_marginLeft="5dp"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="3"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" >

</GridView>

<!-- Fifth Row -->        

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />

<TextView
android:id="@+id/tv_contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="10dp"
android:gravity="right"
android:text="@string/contact" />

<TextView
android:id="@+id/tv_contact_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginRight="10dp"
/>

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />    


<!-- Sixth Row -->

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|left"
android:paddingBottom="10dp"
android:paddingTop="10dp" >

<ImageView
android:id="@+id/iv_person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/Null"
android:src="@drawable/person" />

<TextView
android:id="@+id/tv_avrage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null"
android:paddingLeft="30dp"
android:paddingRight="50dp" />

<RatingBar
android:id="@+id/Money_rating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.1"
/>

</LinearLayout>        

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />


<!-- Seventh Row -->



<TextView
android:id="@+id/tv_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="10dp"
android:gravity="right"
android:text="@string/location" />

<TextView
android:id="@+id/tv_location_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginRight="10dp"
/>

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />

<!-- 8 Row -->



<TextView
android:id="@+id/tv_comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="@string/comments" />

<TextView
android:id="@+id/tv_comment_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Null"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginRight="10dp"
/>     

<View android:id="@id/primerdivisor"
android:layout_height="1dp"
android:layout_width="fill_parent"
android:background="#505152" />


</LinearLayout>   

</ScrollView>

1 个答案:

答案 0 :(得分:0)

GirdView可以自动滚动,你可以使用它。但我建议使用新的RecylerView并使用GridLayoutManager。它也可以自动滚动,但比GridView更有效,而且更加可定制,最重要的是......你可以找到很多很好的例子。

另请参阅Google的这个示例,了解如何高效加载位图:http://developer.android.com/samples/DisplayingBitmaps/index.html