国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用Gridview單行橫向滾動顯示

2019-10-21 21:46:35
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android使用Gridview單行橫向滾動顯示的具體代碼,供大家參考,具體內容如下

要想實現滾動顯示,layout布局里必須要使用HorizontalScrollView,才能實現橫向滑動,但HorizontalScrollView標簽里要嵌套一個LinearLayout布局

activity_main.xml,如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  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" >  <HorizontalScrollView    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">      <LinearLayout        android:layout_height="match_parent"        android:layout_width="match_parent"        android:orientation="horizontal">         <GridView           android:id="@+id/test_gridview"           android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_gravity="center"/>      </LinearLayout>  </HorizontalScrollView></LinearLayout>

gridview中的item的布局如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="80dp"  android:layout_height="match_parent"  android:orientation="vertical" >  <ImageView     android:id="@+id/item_img"    android:layout_width="60dp"    android:layout_height="60dp"    android:layout_gravity="center_horizontal"    android:scaleType="fitXY"    android:background="#00000000"/>  <TextView     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"/></LinearLayout>

實現類如下:

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;    }  }}

代碼下載地址:AndroidGridviewScroll.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡水市| 嵊泗县| 余干县| 宁武县| 汉源县| 清镇市| 乌鲁木齐市| 平安县| 前郭尔| 团风县| 太仓市| 安宁市| 涞水县| 玉门市| 额济纳旗| 绵竹市| 大荔县| 宜兰县| 内丘县| 博爱县| 南陵县| 永泰县| 东方市| 汝南县| 贡嘎县| 理塘县| 邵阳县| 瑞昌市| 阿城市| 安塞县| 泰安市| 兴宁市| 镇坪县| 海宁市| 陆良县| 塘沽区| 高台县| 静宁县| 闽侯县| 广宁县| 伊春市|