android-在GridView视图中设置水平滚动的图像布局

问题描述

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

android-在GridView视图中设置水平滚动的图像布局的相关文章

textview-textView视图中设置文本

问题描述 textView视图中设置文本 我想通过代码在textView视图中设置文本.如果我使用setText()方法在屏幕上显示的文本是这样的:"aaaa n bbb n ccc"而不是: ""aaaabbbccc"". 如果我在xml中设置 android:text=""aaaa n bbbn ccc"",就可以显示出想要的效果.怎么通过代码设置而不是依据xml文件实现呢. 解决方案 简单使用回车换行

android如何在fragment中设置屏幕的上半部分区域有触摸事件?

问题描述 android如何在fragment中设置屏幕的上半部分区域有触摸事件? 我设置了一个swiperefreshlistview,但是列表刷新的touch方法跟列表的滑动冲突了,请问下在fragment中怎么设置区域监听的 解决方案 列表布局是占满整个fragment么?如果不是的话,可以在xml布局中对部分区域设置点击无效,如果是占满fragment的话,但是想对其中一块区域监听,那就直接在代码中判断是否在那个区域范围内再做操作了 解决方案二: 在fragment上部分添加一个view

布局-Android自定义控件在scrollview中设置高度不起作用,已经重写了 onMeasure方法

问题描述 Android自定义控件在scrollview中设置高度不起作用,已经重写了 onMeasure方法 布局: android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <RelativeLayout android:layout_width="match_parent&q

android 怎样在adapter中改变所有item的部分布局?

问题描述 android 怎样在adapter中改变所有item的部分布局? 我想实现类似有道云笔记的笔记功能,点击某个item中的音频文件后,播放当前的音频文件,当前item的音频布局以进度条呈现,同时其它item(无论之前是否被点击播放过,也无论是否播放完过)全部重置为最初未被点击的状态,不知道我有没有把问题说清楚,有没有人做过这个啊?折腾一天了,实在没法了,求指点啊 解决方案 adapter中有个getItemViewType(int position)的方法,返回特定的type,然后构造

Android 在Java代码中设置style属性(以ProgressBar为例)

在andriod开发中,很大一部分都要与资源打交道,比如说:图片,布局文件,字符串,样式等等.这给我们想要开发一些公共的组件带来很大的困难,因为公共的组件可能更愿意以jar包的形式出现.但是java的jar包中只允许出现java代码而不能出现资源. 当我们想要以jar包的形式提供我们自己开发的公共组件时,我们就需要把以代码的形式创建资源. 下面提供一个使用全Java代码的形式创建一个ProgressBar. ProgressBar默认的样式是一个圈圈,我们要想其显示为进度条的样式可以在布局文件中

PS网页设计教程XXII——在PS中创建单页复古网页布局

作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,"熟读唐诗三百首,不会作诗也会吟". 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试翻译这些优秀的教程.因为翻译能力有限,翻译的细节上还有待推敲,希望广大网友不吝赐教. 约定: 1.本文的软件是Photoshop CS5版本 2.原教程的截图是英文的,本人在重新制作的基础上,重新截了中文版的图 3.原文中有些操作没有给出参数.本人在反复测试的情况下测定了一些参数,以红色的

Android中实现多行、水平滚动的分页的Gridview实例源码_Android

功能要求: (1)比如每页显示2X2,总共2XN,每个item显示图片+文字(点击有链接). 如果单行水平滚动,可以用Horizontalscrollview实现. 如果是多行水平滚动,则结合Gridview(一般是垂直滚动的)和Horizontalscrollview实现. (2)水平滚动翻页,下面有显示当前页的icon. 1.实现自定义的HorizontalScrollView(HorizontalScrollView.java): 因为要翻页时需要传当前页给调用者,所以fling函数中自己

Android中实现多行、水平滚动的分页的Gridview实例源码

功能要求: (1)比如每页显示2X2,总共2XN,每个item显示图片+文字(点击有链接). 如果单行水平滚动,可以用Horizontalscrollview实现. 如果是多行水平滚动,则结合Gridview(一般是垂直滚动的)和Horizontalscrollview实现. (2)水平滚动翻页,下面有显示当前页的icon. 1.实现自定义的HorizontalScrollView(HorizontalScrollView.java): 因为要翻页时需要传当前页给调用者,所以fling函数中自己

Android中跑马灯既能水平滚动,又能上下滚动。。

问题描述 Android中跑马灯既能水平滚动,又能上下滚动.. 就是有三条数据,三条数据字数比较多,我想利用跑马灯,既能三条数据上下循环滚动,又能每条数据水平滚动,请问这个可以实现吗? 解决方案 水平的用marquee,垂直的用js设置下容器的scrollTop来循环滚动或者反过来也行,反过来容器要设置scrollLeft 解决方案二: HTML里的标签可以实现你的要求 解决方案三: 用marquee,垂直的用js设置下容器的scrollTop来滚动