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个回答

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;
        }
    }
}
nana4ever
nana4ever 哦,还得改XML文件。
接近 7 年之前 回复
nana4ever
nana4ever 我运行这段代码好用啊。改变了adapter的构造函数,从activity中传值到adapter。
接近 7 年之前 回复
LiDaming_and
LiDaming_and 代码很好,我试过了不能以水平滚动条的形式显示。
接近 7 年之前 回复
nana4ever
nana4ever 试一下这个方法能实现不,告诉我啊~·~
接近 7 年之前 回复

试试下面的代码:

    <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>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
设置Gridview的水平间距,使Gridview布局水平充满屏幕
今天想实现一个根据Gridview的item布局大小,设置Gridview的水平间距,使Gridview布局能水平充满屏幕,我们需要实现的效果是,用户如果刚开始没有选择上传截图的时候,是需要显示下图的照相机图片的,实现效果图如下:本来想动态计算Gridview的宽度和item的宽度,然后取差/2来设置Gridview的水平间距,效果不理想。后想到Gridview有个属性android:stretc...
水平滚动的GridView
习惯了 竖直排列的GridView,再来体验一下,水平排列的GridView吧,需要的拿去!
android-屏幕滚动与布局设计
屏幕滚动与布局设计 android 屏幕滚动与布局设计
在view视图中拖动图像
RT,比如我再 view中绘制了一副图像,怎么能通过鼠标拖动呢??rn如果要达到这种效果,需要哪方面知识啊?
如何清除视图中的图像
MFC或OpenCV中有没有直接清除视图中图像的函数?
Android-在简单的日历视图中可折叠的CalendarView
在简单的日历视图中可折叠的CalendarView
GridView水平滚动源码2012518
GridView水平滚动源码 源码描述: 当GridView中字段很多屏幕放不下的时候, 我们可以考虑给GridView加入水平滚动条来展示数据来自51ASPX。 Add Jquery reference to the master page. Create a style as follows. As you see width is specified as 200px initially. Later using the JQuery 200px is replaced with width of dvScreenWidth div. Add a div to measure the screen width. Add another div around the GridView. This div display the scroll bar. Add the following JQuery scrip. Script will get the width of the dvScreenWidth div and replace the width of dvGridWidth div.Populate the Gridview with dummy data. Populate the Gridview with dummy data.
html水平滚动的设置
在html中设置水平滚动条,完整的代码及脚本。
在视图中始终显示水平滚动条?
我想在视图中始终显示水平滚动条,但每次都要在菜单中选择查看 显示 水平滚动条.请问有什么办法可以在打开notes后始终显示滚动条?
textView视图中设置文本
我想通过代码在textView视图中设置文本。如果我使用setText()方法在屏幕上显示的文本是这样的:“aaaa \ n bbb \ n ccc”,而不是:rnrn "aaaarn bbbrn ccc".rnrn如果我在xml中设置 android:text="aaaa \n bbb\n ccc",就可以显示出想要的效果。怎么通过代码设置,而不是依据xml文件实现呢。
请教:gridview 显示不出 视图中数据???
我建了一个视图:rnCREATE VIEW dbo.v_report_tablern ASrn SELECT u.true_name as 姓名,sum ( l.spent_time_normal) as 正常工作时间 ,sum(l.spent_time_overtime) as 加班时间,l.user_no as 登陆名 ,u.cost as 每小时费用rn FROM logs l inner join user_info u on user_no=no group by u.cost, l.user_no, u.true_namernrn----------rn我在gridview中显示代码:rnusing System;rnusing System.Data;rnusing System.Configuration;rnusing System.Collections;rnusing System.Web;rnusing System.Web.Security;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.WebControls.WebParts;rnusing System.Web.UI.HtmlControls;rnusing System.Data.SqlClient;rnpublic partial class report : System.Web.UI.Pagernrn protected void Page_Load(object sender, EventArgs e)rn rn if (!Page.IsPostBack)rn rn DataSet ds = new DataSet();rn SqlConnection conn = new SqlConnection("server=127.0.0.1;uid=sa;pwd=wbok123;database=htpm");rn SqlDataAdapter sda = new SqlDataAdapter("select * from v_report_table", conn);rn conn.Open();rn sda.Fill(ds, "v_report_table");rn sda.Dispose();rn conn.Close();rn conn.Dispose();rn this.dvReport.DataSource = ds.Tables["v_report_table"];rn this.dvReport.DataBind();rn rn rnrn----------rn问题:运行后程序里,只显示了表头字段,没有显示数据.没有报错!
视图中
(mfc)如何在一个视图中新建另外一个视图?
视图中,拖动图像闪烁问题
单文档视图结构,在视图中显示了图片,在图片大小超过视图时,需要拖动滚动条或鼠标查看,rn可是在拖动时会出现闪烁情况,请问此情况该如何解决,最好给个例子~谢谢~~
同一个视图中显示两幅图像?
我想在同一个视图中先后显示两个图像,不知道怎么办》rn请各位帮帮忙
HorizontalScrollView嵌套GridView实现水平滚动
该资源实现了HorizontalScrollView嵌套GridView实现单行滚动效果。选中GridView的item,该item下面的ListView跟着变化,并处理了他们之间的焦点转换问题
Android GridView 实现横向列表水平滚动
有时候根据项目需要,使用可横向滑动的GridView。
android GridView两行水平滚动实现效果
项目中要求实现两行的水平滚动效果,当时想了很久是用listview实现呢还是用gridview实现,最后决定用gridview实现,如下: 首先重写gridview: public class MyGridView extends GridView { public MyGridView(Context context) { super(context);
html设置图像水平间距
设置图像的水平间距 选择您喜欢的头像 人物头像 另一组 效果:
gridview实现垂直和水平布局的方法
下面的代码设置了是4列 android:numColumns=”4”,这样就成了4列*行的表格布局, <GridView android:id="@+id/id_main_gv" android:layout_width="match_parent" android:layout_height="wrap_content" androi
水平滚动
html代码: <p class="text-p" id="scrollobj"> 我们不是song仲基,我们是送iPhone。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今年过节不送礼,送礼就送爱疯6s&nbsp;Plus。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n
循环设置视图中的元素属性
我有一个LinearLayout,里面都是checkbox,我想把LinerLayout里面的checkbox都变成选中状态,我的思路就是循环得到这个LinearLayout中的所有元素,然后转成CheckBox ,设置属性,但是转化的时候就是报错,估计不应该这样做,我的代码如下,红色为报错区rn LinearLayout ll01 = (LinearLayout) findViewById(R.id.LinearLayout01);rn //循环赋值rn for(int i=1;i<=ll01.getChildCount();i++)rn rn [color=#FF0000]CheckBox cbItem=(CheckBox)ll01.getChildAt(i);rn cbItem.setChecked(false);[/color]rn rn
视图中的颜色设置问题,请教大侠!
当视图作为输入的界面时,如何设置视图的背景色而不改变视图中按钮的颜色?rn e-mail:sjc999@263.net
设置单文档CListView视图中列表的行高
首先应该设置CListCtrl的LVS_OWNERDRAWFIXED属性: BOOL CMyListView::PreCreateWindow(CREATESTRUCT& cs) { /* 注意在添加类型时不要直接使用 = ,这样会消除掉cs以前的style。 */ cs.style |= LVS_REPORT|LVS_SHOWSELALWAYS|LVS_OWNERDRAWFIXED
在openerp的tree视图中设置字体及颜色
Colors Use the colors attribute on the tree element to colorize records based on some conditions.  Example, to colorize session list depending on it’s state:
CListView视图中如何设置背景图
我需要在CListView视图中设置一幅bmp或jpg图片作为背景,查MSDN发现CListView有一函数SetBkImage可直接将某一图片文件设为其背景,但是InsertItem之后,插入的Item会覆盖背景,我想做到透明的效果,即插入的Item不覆盖其背景,如何实现?
水平布局
Flutter基础入门视频教程,Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。通过这门课程的学习使得大家掌握使用flutter来编写跨平台移动客户端应用。
Android-使用ScrollView设置滚动界面
Android-使用ScrollView设置滚动界面在安卓App里面有一些内容需要我们手指进行下拉滚动才可见,因为手机的屏幕只有那么大, 不可能全部显示,所以ScrollView可解决这个问题。还是写几个简单的例子复习一下。布局文件: activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/
GridView设置不同的item(布局)
GridView设置不同的item(布局)
视图中焦点问题?
我在单文档视图中按序号画了30个矩形,当鼠标单击其中一个矩形的时候,我怎么样才可以知道单击的是哪个矩形,焦点在哪个矩形上?
视图中的复选框的问题?
我在视图的第一个colomn的公式语言中输入rnunid:=@Text(@DocumentUniqueID);rn"[]"rn用web预览可以看到复选框,也能选中。rn但是我想删除选中的文档,不知道怎么实现(怎样知道该文档被选中)?希望各位大侠能给出删除操作的代码(B/S)。
视图中执行SQL
视图中执行SQL,错误提示字段不存在,但实际上看字段是存在的 ,请问可能的原因是什么?
关于视图中的批量修改
从数据库中某个表中导出的excel表格会错位,原因是某些记录后面多了个回车键,现在我想去除掉视图v_good中code列的回车键,rn[code=SQL]update v_goodrnset code=replace(replace(replace(code,' ',''),char(10),''),char(13),'')rn但是有错误:rn服务器: 消息 4403,级别 16,状态 1,行 1rn视图或函数 'v_good' 不可更新,因为它包含聚合。[/code]rn但 打开视图-返回所有行 中就可以一一修改,我现在要批量修改就不行,奇怪……rn该咋办效率最高?
视图中的main
rose 2003中,用例视图、逻辑视图、组件视图中都有一个main,可以改名,但不能删除,请问它有什么用处?
iOS视图中的知识点
一、NavigationBar 全透明。全屏背景图片      self.navigationController.navigationBar.shadowImage = [UIImage new];    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMe...
在视图中创建表格问题
我已经在CListCtrl控制中创建了很多行记录信息,现在要求把CListCtrl里的内容以表格的形式列出到视图窗口中,有什么办法?
视图中定时器问题
OnInitialUpdate设定一个定时器,在OnTimer如果删除CListView::OnTimer(nIDEvent);则定时器可以正常工作,否则,只能产生一次消息。rnrn为什么会是这样?是什么原因?
视图中没有文档?
在表单A中以@Command([Compose];"B")方法打开表单B,并赋域值给表单B,保存表单B后,在其对应视图中找不到文档,请问是何缘啊?
视图中的请求对象
<div style="text-align:center;">rn <span style="font-size:16px;"><strong>Python框架Djanggo从入门到实战教程</strong></span> rn</div>rn<p>rn <span style="font-size:16px;"><br />rn</span> rn</p>rn<p>rn <span style="font-size:16px;">Django是一个高级Python Web框架, 鼓励快速,简洁, 以程序设计的思想进行开发. 通过使用这个框架, 可以减少很多开发麻烦, 使你更专注于编写自己的app, 而不需要重复造轮子. Django免费并且开源。</span> rn</p>rn<br />rn<p>rn <span style="font-size:16px;">本教程<strong>从浅入深,不仅有知识点的讲解,还有项目实战!</strong>非常值得学习,纵观全网,本教程知识点最详细,不但有知识点的讲解,还会讲项目,项目实战和企业需求匹配!</span> rn</p>rn<p>rn <span style="font-size:16px;"><br />rn</span> rn</p>rn<p>rn <span style="font-size:18px;background-color:#FFFFFF;color:#E53333;"><strong>本课程的亮点在其项目,是真正的企业级项目,重磅级项目,在找工作的时候为你加分!</strong></span> rn</p>rn<br />rn<span style="font-size:16px;">本教程全面带你了解Djanggo框架</span><br />rn<span style="font-size:16px;">1、Django基础</span><br />rn<span style="font-size:16px;">2、Django进阶</span><br />rn<span style="font-size:16px;">3、Django模板引擎</span><br />rn<p>rn <span style="font-size:16px;">4、实战案例</span> rn</p>rn<p>rn <span style="font-size:16px;"><br />rn</span> rn</p>rn<p>rn <span style="font-size:16px;"><br />rn</span> rn</p>rn<br />rn<div>rn <br />rn</div>
如何将视图中的数据导出
我想将视图中的数据导出来然后打印,不知道如何导出,好象只有表才可以导出。
oracle视图中添加数据
往oracle添加数据,提示添加成功!没有报错,提交事务之后。n查询时没有数据,重新插入该条数据,则会报唯一约束的错误,到底是怎么回事?
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview