Java 在滚动视图中显示图像

Java 在滚动视图中显示图像,java,android,mysql,xml,Java,Android,Mysql,Xml,我是android编程新手。我目前正在使用mysql数据库为我的项目开发一个应用程序。 我有一个活动,它会显示很多关于某个事件或地点的信息 此活动很长,因此我使用滚动视图 问题是: 我想显示一个带有标题的图像“我不知道数字,它取决于数据库中有多少图像,所以每次我在DB中添加一个新图像时,它都会显示在此活动中” 我曾想过使用GridView,但问题是我已经使布局可滚动。那么我可以用什么来显示图像呢 以下是我的XML布局: <?xml version="1.0" encoding="utf-8

我是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>

GirdView本身可以滚动,您可以使用它。但我建议使用新的RecylerView并在其上使用GridLayoutManager。它本身也是可滚动的,但比GridView更高效,更可定制,而且最重要的是。。。你可以找到很多很好的例子


另外,请看一看谷歌如何高效加载位图的示例:

为什么要在数据库中存储图像?将其存储在
drawable
文件夹中,该文件夹位于
res
文件夹中。请注意,这根本不是一个好的设计,您需要使用列表或网格视图来实现。另外,将图像存储在文件夹中,而不是数据库中。如果要从联机数据库中获取图像,请使用ListView或GridView,并使用PARSE解决此问题。