LiDaming_and
2012-11-06 09:16
采纳率: 88.9%
浏览 10.4k

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第一次创建时,调用以下方法 */
@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));
    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;
    }
}
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • nana4ever 2012-11-07 02:12
    最佳回答
    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;
            }
        }
    }
    
    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题