android gridview中的水平滚动

2023-11-21

我的应用程序中有一个网格视图,我需要水平滚动它。我尝试将网格视图更改为图库。但是只有一行可用,但我需要与网格视图中不同的行。所以基本上我需要的是一个可以水平滚动的gridview。有没有有效的方法来做到这一点?提前致谢。

问候 阿努

您好,感谢您的回复。我尝试使用 Gallery 并实现一个适配器,该适配器在其 getView 方法中提供多行视图。

我的java文件是:

public class Gridview extends Activity 
{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Gallery g = (Gallery) findViewById(R.id.gallery);
    g.setAdapter(new GridAdapter(this));

    g.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            Toast.makeText(Gridview.this, "" + position, Toast.LENGTH_SHORT).show();
        }
    });
}

public class GridAdapter extends BaseAdapter {
    int mGalleryItemBackground;
    private Context mContext;

    private Integer[] mImageIds = {
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
    };

    public GridAdapter(Context c) {
        mContext = c;
        TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery);
        mGalleryItemBackground = a.getResourceId(
                R.styleable.HelloGallery_android_galleryItemBackground, 0);
        a.recycle();
    }

    public int getCount() {
        return mImageIds.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

      View v;
       if(convertView==null)
       {
       LayoutInflater li = getLayoutInflater();
       v = li.inflate(R.layout.icon, null);  

       ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
       iv.setImageResource(R.drawable.icon);    

       }
       else
       {
       v = convertView;
       }
      return v;
    }
}
}

main.xml 是:

 <?xml version="1.0" encoding="utf-8"?>
 <Gallery xmlns:android="http://schemas.android.com/apk/res/android" 
 android:id="@+id/gallery"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"/>

icon.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

 <ImageView
 android:id="@+id/icon_image"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="vertical">
 </ImageView>

 </LinearLayout>

我得到的输出是:http://www.4shared.com/photo/MzUcmzel/device.html

但这实际上不是我需要的。我想要不同行中的图标。任何帮助都会受到赞赏。


我认为最好的选择是使用 Gallery 并实现一个在其 getView 方法中提供多行视图的适配器。看你好画廊并查看其中的 ImageAdapter 实现。

例如,您可以扩展自己的自定义布局,例如具有垂直方向的 LinearLayout,而不是该示例中 getView 返回的 ImageView。

您可能会考虑在 Horizo​​ntalScrollView 中使用 TableLayout,但缺点是所有内容都会同时存储在内存中,因此很难扩展到大量项目。 Gallery 回收了 Views,并提供了一些资源优势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android gridview中的水平滚动 的相关文章

随机推荐

  • 如何在 javafx 中更改 TextField 的背景颜色而不更改边框?

    我试图将 TextField colorBox0 的背景颜色更改为 value0 但它消除了边框 这是我的代码的简化版本 static Paint value0 Paint valueOf FFFFFF TextField colorBox
  • 如何找到当前单元格上方最近的非空白单元格?

    我有一列数据 我需要找到前一个非空白单元格 例如 如果我有以下数据 foo formula where 表示一个空白单元格 那么我想要 formula 单元格来查找对包含的单元格的引用foo无论它们之间插入多少个空白单元格 测试列中包含空白
  • 如何使用 std::enable_if 根据模板类型启用或禁用构造函数?

    我有以下模板化对象 template lt typename type 1 typename type 2 gt struct result I want to enable these two constructors only if t
  • ASP.NET MVC:我可以在 Controller 类上说 [Authorize Roles="Administrators"],但有一个公共操作吗?

    我开始使用默认项目的AccountController 但我已经将其扩展 更改得面目全非 然而 与原版一样 我有一个LogOn and LogOff行动 显然 LogOn每个人都必须能够采取行动 但是 由于我已向该控制器添加了许多其他操作
  • JavaScript 中的高斯/银行家舍入

    我一直在使用Math Round myNumber MidpointRounding ToEven 在 C 中进行服务器端舍入 但是 用户需要 实时 知道服务器端操作的结果是什么 这意味着 避免Ajax请求 创建一个 JavaScript
  • 如何使用 Excel 将矩阵转换为单列

    我在 Excel 中有以下矩阵 3 栏 A B C Row 1 a b c Row 2 d e f Row 3 ghi 我需要的是包含所有这些值的一列 结果应该是这样的 a b c d e f g h i TRANSPOSE 函数不适用于这
  • 预取是由精确地址流还是由缓存行流触发?

    在现代 x86 CPU 上 硬件预取是一项重要技术 可在用户代码显式请求缓存行之前将其引入缓存层次结构的各个级别 The basic idea is that when the processor detects a series of a
  • Eudyptula 挑战和内核路径

    我决定采取桉树挑战 在我提交第一个任务后 即构建一个简单的 Hello World 模块 我收到以下答案 请阅读 Makefile 的要求并允许该模块 针对文件系统上的任何内核源代码树构建 而不仅仅是那些 碰巧安装的内核 lib 在某个时间
  • 有没有限制 mongodb 内存使用的选项?

    我使用的是 Mongo DBv1 8 1 我的服务器内存是 4GB 但 Mongo DB 使用的内存超过 3GB MongoDB 中有内存限制选项吗 如果你正在跑步MongoDB 3 2或更高版本 您可以限制wiredTiger cache
  • VSTO Word 激活功能区选项卡

    我的 Word vsto 插件中有以下ribbon xml
  • 如何播放 .wav 声音?

    我正在制作一个应用程序 我希望它在打开活动时发出声音 声音文件位于R raw sound file 如果有人可以编写一些示例代码来使我的应用程序播放声音 那就太好了 不是吗android media MediaPlayer类做这个吗 参考
  • 在 Dynamics CRM 中使用 OData 检索所有 OptionSet 值

    我对 Dynamics CRM 还很陌生 我正在构建一个应用程序 它应该更新 Dynamics CRM 中的实体 我可以毫无问题地更新简单类型 现在的情况是 我在联系人实体中声明了一些自定义选项集 有没有办法检索所有可能的 OptionSe
  • android:NeighboringCellInfo 始终为空!?为什么?

    我正在尝试获取有关我的手机可以 看到 自动取款机的邻近小区的信息 到目前为止 一切都很好 我这样做 telManager TelephonyManager context getSystemService Context TELEPHONY
  • Android 在特定日期通知

    我必须创建一个应用程序 我必须在其中设置一个日期 并且在该特定日期的 9 点钟位置 我必须发出通知 做到这一点最简单的方法是什么 我希望应用程序能够正常工作 即使应用程序被杀了 AlarmManager 是一个解决方案吗 要安排操作 您可以
  • 快速查找二维数组中的多个最大值

    情况如下 我有一个 2D numpy 数组 其形状为 1002 1004 每个元素包含一个介于 0 和 Inf 之间的值 我现在想要做的是确定前 1000 个最大值并将相应的索引存储到名为 x 的列表和名为 y 的列表中 这是因为我想绘制最
  • 单击链接时 JavaScript 添加类

    我有这些链接 a class active href section1 Link 1 a a href section2 Link 2 a 单击链接 2 时 我希望它接收活动类并从链接 1 本身中删除该类 这样它实际上会变成 a href
  • 自动调整 JTable 中的行高

    在 JTable 中 如何使某些行自动增加高度以显示其中完整的多行文本 这是目前的显示方式 我不想设置高度all行 但仅适用于具有多行文本的行 确定知道行高的唯一方法是渲染每个单元格以确定渲染的高度 在表中填充数据后 您可以执行以下操作 p
  • Emacs 和 conda 解决方法

    我正在使用 emacs 和 anaconda 我的 init el 中有这个 setenv WORKON HOME home user anaconda3 envs 和康达在我的道路上 added by Anaconda3 installe
  • mBluetoothGatt.getService(uuid) 返回 null

    在我的应用程序中 我传递了助听器服务的 UUID 编号 如 google 的 BLE 示例所示 即 0000a00 0000 1000 8000 00805f9b34fb 但是 getservice 返回 null 意味着该服务不受 Blu
  • android gridview中的水平滚动

    我的应用程序中有一个网格视图 我需要水平滚动它 我尝试将网格视图更改为图库 但是只有一行可用 但我需要与网格视图中不同的行 所以基本上我需要的是一个可以水平滚动的gridview 有没有有效的方法来做到这一点 提前致谢 问候 阿努 您好 感