在滚动视图中显示图像
问题描述:
我是android编程的新手。我目前正在为使用mysql数据库的项目开发一个应用程序。 我有一个活动,这将显示大量的活动信息或地点 这个活动很长,所以我使用滚动视图。在滚动视图中显示图像
的问题是: 我想用一个标题来显示图像“我不知道它取决于多少图像数据库中的号码,我的每个数据库中添加新的图像时它会出现在这个活动“
我想使用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更有效率,更多的可定制和最重要的东西......你可以找到很多很好的例子。
而且大哥看看这个谷歌的例子,如何有效地加载位图:http://developer.android.com/samples/DisplayingBitmaps/index.html
数据库中的你为什么要存储图像?将其存储在'res'文件夹内的'drawable'文件夹中。 – 2015-04-05 07:52:38
请注意,这不是一个好设计,你需要用列表或网格视图来实现它。另外,将图像存储在文件夹中而不是数据库中。 – 2015-04-05 07:56:16
如果您正在从在线数据库拍摄图像,请使用ListView或GridView使用PARSE来解决问题。 – Aadi 2015-04-05 08:02:55