android gridview横向显示图片,Android使用Gridview单行横向滚动显示
本文实例为大家分享了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单行横向滚动显示相关推荐
- android动态设置文本居中显示图片,Android DrawableTextView图片文字居中显示实例
在我们开发中,TextView设置Android:drawableLeft一定使用的非常多,但Drawable和Text同时居中显示可能不好控制,有没有好的办法解决呢? 小编的方案是通过自定义Text ...
- 安卓 加载服务器图片不显示图片,android 从服务器加载.9图
问题描述: APP启动时, 广告页的图片是从服务器上获取, 这个图片一般需要全屏显示, 这个怎么适配呢? 解决方法1: 如果使用android:scaleType="fitXY"属 ...
- android+显示html内容居中显示图片,Android开发中对HTML内容的显示
摘 要 随着Android科技的发展,手机客户端接受了更多的HTML内容.本文作者采用WebView直接显示法结合人机 >> Android开发中的主题设置研究 线程在Android开发中 ...
- android studio 加载图片,Android Studio 加载网络图片
Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...
- android 查看多个图片,android提取视频多张图片和视频信息
android提取视频多张图片和视频信息 话说2016年的直播比较火,2017年短视频又火了.但对于开发者来说隐藏在这背后的技术才是我们所关心的,毕竟我们是靠技术吃饭的. 现在在安卓中多媒体服务比较强 ...
- android工程换背景图片,Android初学者:用知乎Matisse开源项目制作更换应用背景图片功能...
前言 我搜索了下关于知乎Matisse的使用教程甚少,于是我就想着来做一个教程,这个教程是针对初学者的,因为我自己也是一个初学者,希望对各位刚刚接触Android开发的小伙伴有帮助! 关于Matiss ...
- android画圆形背景图片,android圆形图片,圆形背景文字的CircleTextImageView开源组件...
转[http://blog.csdn.net/ys408973279/article/details/50350313] 在项目中我们经常遇到需要显示圆形头像的需求,一般我们都使用hdodenhof/ ...
- android glide 4旋转图片,Android 效率开发之图片---Glide 旋转图片处理
事实上Glide会对旋转的图片正确处理,比如你在三星手机上拍照旋转了90度,用Glide 加载的话,会正确显示. 通过Glide 强大的图片变换功能,我们也可以旋转图片,关于Glide 的图片变换请参 ...
- 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )
文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...
最新文章
- Operations Manager 2012 SP1配置部署系列之(二) SCOM监控SCVMM
- cf559C. Gerald and Giant Chess(容斥原理)
- mysql多源复制相同数据库名称_mysql数据库多源复制方案
- laravel并行访问MySQL_laravel实现多数据库连接配置
- SAP License:PS-七日通-第二通-预算管理
- udp怎么保证不丢包_MQ不丢消息,究竟是怎么实现的?
- c语言创建若干个成绩栏目,2015年计算机二级《C语言》考试上机测试题(6)
- ruby rails
- 所有for循环都可以用while循环改写python_python-for循环与while循环
- 汤唯:《在街头卖艺的那些日子》
- php 获取 星期几,php怎么获得星期几
- php excel 导入图片,利用php实现读取excel中的图片
- win10计算机丢失msvcr,win10系统运行程序提示计算机中丢失msvcr110.dll的教程
- EXCEL多列vlookup匹配
- WeChatExtension:一款mac微信必备插件!
- 用 IAR C/C++ For ARM 编写嵌入式应用的启动细节
- 新能源汽车补贴监管升级,“信息/网络安全+OTA”勒紧“紧箍咒”
- 横河便携式pH计PH72-21-E-AA
- vite2 antD 动态切换主题
- Twenty-third
热门文章
- applicationcontext添加配置_让小白也能懂的Bean配置方法
- 欧拉回路基本概念+判断+求解
- docker私有仓库Harbor 使用文档
- Ubuntu 12/14 个性化配置
- Launch custom android application from android browser
- 澳门大学物联网设计方法研究获“973”立项
- [ASP]没有权限: 'CreateObject'
- 视觉盛宴VALSE 2021来了!今晚开始【预注册】
- 数据不够,游戏来凑!随机三维人物实现可泛化的行人再辨识(ReID)
- CVPR 2019 | 旷视提出超分辨率新方法Meta-SR:单一模型实现任意缩放因子