本文实例为大家分享了Android使用Gridview单行横向滚动显示的具体代码,供大家参考,具体内容如下

要想实现滚动显示,layout布局里必须要使用HorizontalScrollView,才能实现横向滑动,但HorizontalScrollView标签里要嵌套一个LinearLayout布局

activity_main.xml,如下:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity"

android:orientation="vertical"

android:weightSum="2" >

android:id="@+id/horizontal_scrollview"

android:layout_height="0dp"

android:layout_width="fill_parent"

android:layout_weight="1"

android:layout_gravity="center"

android:background="@android:color/darker_gray"

android:scrollbars="none">

android:layout_height="match_parent"

android:layout_width="match_parent"

android:orientation="horizontal">

android:id="@+id/test_gridview"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"/>

gridview中的item的布局如下:

android:layout_width="80dp"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/item_img"

android:layout_width="60dp"

android:layout_height="60dp"

android:layout_gravity="center_horizontal"

android:scaleType="fitXY"

android:background="#00000000"/>

android:id="@+id/item_text"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:textSize="20dp"

android:text="233"

android:textColor="@android:color/white"/>

实现类如下:

package com.example.scrollgridview;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.util.DisplayMetrics;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.GridView;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

public class MainActivity extends Activity {

private GridView gridview;

private int imgs[]={R.drawable.remote_tv_0,

R.drawable.remote_tv_1,R.drawable.remote_tv_2,

R.drawable.remote_tv_3,R.drawable.remote_tv_4,

R.drawable.remote_tv_5,R.drawable.remote_tv_6,

R.drawable.remote_tv_7,R.drawable.remote_tv_8,

R.drawable.remote_tv_9};

private GridviewAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

gridview = (GridView)findViewById(R.id.test_gridview);

adapter = new GridviewAdapter();

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

float density = dm.density;

int size = imgs.length;//要显示数据的个数

//gridview的layout_widht,要比每个item的宽度多出2个像素,解决不能完全显示item的问题

int allWidth = (int) (82 * size * density);

//int allWidth = (int) ((width / 3 ) * size + (size-1)*3);//也可以这样使用,item的总的width加上horizontalspacing

int itemWidth = (int) (80 * density);//每个item宽度

LinearLayout.LayoutParams params = new

LinearLayout.LayoutParams(allWidth,LinearLayout.LayoutParams.MATCH_PARENT);

gridview.setLayoutParams(params);

gridview.setColumnWidth(itemWidth);

gridview.setHorizontalSpacing(3);

gridview.setStretchMode(GridView.NO_STRETCH);

gridview.setNumColumns(size);

gridview.setAdapter(adapter);

adapter.setindex(0);

adapter.notifyDataSetChanged();

gridview.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

// TODO Auto-generated method stub

adapter.setindex(position);

adapter.notifyDataSetChanged();

}

});

}

class GridviewAdapter extends BaseAdapter{

private int index = 0;

@Override

public int getCount() {

// TODO Auto-generated method stub

return imgs.length;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return imgs[position];

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

public void setindex(int index){

this.index = index;

}

@Override

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

// TODO Auto-generated method stub

LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

ViewHolder viewHolder;

if (convertView == null) {

convertView = mInflater.inflate(R.layout.gridview_itme, null);

viewHolder = new ViewHolder();

viewHolder.img = (ImageView)convertView.findViewById(R.id.item_img);

viewHolder.text = (TextView)convertView.findViewById(R.id.item_text);

convertView.setTag(viewHolder);

}else{

viewHolder = (ViewHolder)convertView.getTag();

}

if(this.index == position){

convertView.setBackgroundResource(R.drawable.list_item_bg_focus);

}

else{

convertView.setBackgroundResource(R.drawable.list_item_bg);

}

viewHolder.img.setImageResource(imgs[position]);

viewHolder.text.setText(position+"");

return convertView;

}

class ViewHolder{

ImageView img;

TextView text;

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android gridview横向显示图片,Android使用Gridview单行横向滚动显示相关推荐

  1. android动态设置文本居中显示图片,Android DrawableTextView图片文字居中显示实例

    在我们开发中,TextView设置Android:drawableLeft一定使用的非常多,但Drawable和Text同时居中显示可能不好控制,有没有好的办法解决呢? 小编的方案是通过自定义Text ...

  2. 安卓 加载服务器图片不显示图片,android 从服务器加载.9图

    问题描述: APP启动时, 广告页的图片是从服务器上获取, 这个图片一般需要全屏显示, 这个怎么适配呢? 解决方法1: 如果使用android:scaleType="fitXY"属 ...

  3. android+显示html内容居中显示图片,Android开发中对HTML内容的显示

    摘 要 随着Android科技的发展,手机客户端接受了更多的HTML内容.本文作者采用WebView直接显示法结合人机 >> Android开发中的主题设置研究 线程在Android开发中 ...

  4. android studio 加载图片,Android Studio 加载网络图片

    Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...

  5. android 查看多个图片,android提取视频多张图片和视频信息

    android提取视频多张图片和视频信息 话说2016年的直播比较火,2017年短视频又火了.但对于开发者来说隐藏在这背后的技术才是我们所关心的,毕竟我们是靠技术吃饭的. 现在在安卓中多媒体服务比较强 ...

  6. android工程换背景图片,Android初学者:用知乎Matisse开源项目制作更换应用背景图片功能...

    前言 我搜索了下关于知乎Matisse的使用教程甚少,于是我就想着来做一个教程,这个教程是针对初学者的,因为我自己也是一个初学者,希望对各位刚刚接触Android开发的小伙伴有帮助! 关于Matiss ...

  7. android画圆形背景图片,android圆形图片,圆形背景文字的CircleTextImageView开源组件...

    转[http://blog.csdn.net/ys408973279/article/details/50350313] 在项目中我们经常遇到需要显示圆形头像的需求,一般我们都使用hdodenhof/ ...

  8. android glide 4旋转图片,Android 效率开发之图片---Glide 旋转图片处理

    事实上Glide会对旋转的图片正确处理,比如你在三星手机上拍照旋转了90度,用Glide 加载的话,会正确显示. 通过Glide 强大的图片变换功能,我们也可以旋转图片,关于Glide 的图片变换请参 ...

  9. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...

最新文章

  1. Operations Manager 2012 SP1配置部署系列之(二) SCOM监控SCVMM
  2. cf559C. Gerald and Giant Chess(容斥原理)
  3. mysql多源复制相同数据库名称_mysql数据库多源复制方案
  4. laravel并行访问MySQL_laravel实现多数据库连接配置
  5. SAP License:PS-七日通-第二通-预算管理
  6. udp怎么保证不丢包_MQ不丢消息,究竟是怎么实现的?
  7. c语言创建若干个成绩栏目,2015年计算机二级《C语言》考试上机测试题(6)
  8. ruby rails
  9. 所有for循环都可以用while循环改写python_python-for循环与while循环
  10. 汤唯:《在街头卖艺的那些日子》
  11. php 获取 星期几,php怎么获得星期几
  12. php excel 导入图片,利用php实现读取excel中的图片
  13. win10计算机丢失msvcr,win10系统运行程序提示计算机中丢失msvcr110.dll的教程
  14. EXCEL多列vlookup匹配
  15. WeChatExtension:一款mac微信必备插件!
  16. 用 IAR C/C++ For ARM 编写嵌入式应用的启动细节
  17. 新能源汽车补贴监管升级,“信息/网络安全+OTA”勒紧“紧箍咒”
  18. 横河便携式pH计PH72-21-E-AA
  19. vite2 antD 动态切换主题
  20. Twenty-third

热门文章

  1. applicationcontext添加配置_让小白也能懂的Bean配置方法
  2. 欧拉回路基本概念+判断+求解
  3. docker私有仓库Harbor 使用文档
  4. Ubuntu 12/14 个性化配置
  5. Launch custom android application from android browser
  6. 澳门大学物联网设计方法研究获“973”立项
  7. [ASP]没有权限: 'CreateObject'
  8. 视觉盛宴VALSE 2021来了!今晚开始【预注册】
  9. 数据不够,游戏来凑!随机三维人物实现可泛化的行人再辨识(ReID)
  10. CVPR 2019 | 旷视提出超分辨率新方法Meta-SR:单一模型实现任意缩放因子