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

首頁 > 系統 > Android > 正文

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

2019-12-12 00:42:16
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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(VeVB.COm).rar

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洞口县| 常熟市| 汶川县| 肃北| 乐平市| 横山县| 北川| 白水县| 青海省| 石屏县| 会东县| 诸城市| 庆城县| 周口市| 洪雅县| 富锦市| 广宁县| 通河县| 彩票| 卫辉市| 德钦县| 大余县| 遵义县| 昌宁县| 兴隆县| 灌南县| 安阳市| 黎川县| 兰西县| 吴桥县| 山西省| 兴和县| 交口县| 准格尔旗| 玉田县| 自治县| 宝丰县| 淳化县| 东至县| 芦山县| 承德县|