问题描述
- android-在GridView视图中设置水平滚动的图像布局
- 我想以gridview的视图显示图像缩略图,要求这些图像排成一列以水平滚动条的形式显示。我设置了很多参数,但是检查不出哪里出错了。显示出来的图像根本不是按照原计划显示的。请大家帮忙纠错,谢谢!
mian.xml<LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android"" android:layout_width=""fill_parent"" android:layout_height=""fill_parent"" android:orientation=""vertical""> <GridView android:layout_width=""500dp"" android:layout_height=""400dp"" android:id=""@+id/grid"" android:columnWidth=""300dp"" android:padding=""5dp"" android:horizontalSpacing=""10dp"" android:verticalSpacing=""10dp"" android:scrollbars=""horizontal"" android:stretchMode=""spacingWidthUniform""> </GridView></LinearLayout>
Activity 代码:
//---显示图像---Integer[] imageIDs = { R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library };/** 当activity第一次创建时,调用以下方法 */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridView = (GridView) findViewById(R.id.grid); gridView.setAdapter(new ImageAdapter(this)); gridView.setNumColumns(imageIDs.length);}public class ImageAdapter extends BaseAdapter{ private Context context; public ImageAdapter(Context c) { context = c; } public int getCount() { return imageIDs.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position View convertView ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(context); imageView.setLayoutParams(new GridView.LayoutParams(100 100)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } imageView.setImageResource(imageIDs[position]); return imageView; }}
解决方案
import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class Test2Activity extends Activity { /** Called when the activity is first created. */ public Integer[] imageIDs = { R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library R.drawable.library }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridView = (GridView) findViewById(R.id.grid); gridView.setAdapter(new ImageAdapter(this imageIDs)); gridView.setNumColumns(imageIDs.length); } class ImageAdapter extends BaseAdapter { private Context context; Integer[] imageIDs; public ImageAdapter(Context c Integer[] imageIDResults) { context = c; imageIDs = imageIDResults; } public int getCount() { return imageIDs.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position View convertView ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(context); imageView.setLayoutParams(new GridView.LayoutParams(100 100)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } imageView.setImageResource(imageIDs[position]); return imageView; } }}
解决方案二:
试试下面的代码:
<LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android"" android:layout_width=""fill_parent"" android:layout_height=""fill_parent"" android:orientation=""vertical""> <HorizontalScrollView android:id=""@+id/horizontalScrollView1"" android:layout_width=""fill_parent"" android:layout_height=""wrap_content"" android:fillViewport=""true"" android:scrollbars=""none"" > <GridView android:layout_width=""500dp"" android:layout_height=""400dp"" android:id=""@+id/grid"" android:columnWidth=""300dp"" android:padding=""5dp"" android:horizontalSpacing=""10dp"" android:verticalSpacing=""10dp"" android:scrollbars=""horizontal"" android:stretchMode=""spacingWidthUniform""> </GridView> </HorizontalScrollView></LinearLayout>
解决方案三:
<HorizontalScrollView android:id=""@+id/horizontalScrollView1"" android:layout_width=""fill_parent"" android:layout_height=""wrap_content"" android:fillViewport=""true"" android:scrollbars=""horizontal"" ><GridView android:layout_width=""500dp"" android:layout_height=""400dp"" android:id=""@+id/grid"" android:columnWidth=""300dp"" android:padding=""5dp"" android:horizontalSpacing=""100dp"" android:verticalSpacing=""10dp"" android:scrollbars=""horizontal"" android:stretchMode=""spacingWidthUniform""></GridView></HorizontalScrollView>
时间: 2024-11-01 02:43:01