国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android入門之ActivityGroup+GridView實現Tab分頁標簽的方法

Android入門之ActivityGroup+GridView實現Tab分頁標簽的方法

2021-03-06 23:10Android開發網 Android

這篇文章主要介紹了Android入門之ActivityGroup+GridView實現Tab分頁標簽的方法,非常實用的功能,需要的朋友可以參考下

在android程序中很多客戶端軟件和瀏覽器軟件都喜歡用tab分頁標簽來搭建界面框架。讀者也許會馬上想到使用tabhost 與 tabactivity的組合,其實最常用的不是它們,而是由gridview與activitygroup的組合。每當用戶在gridview選中一項,activitygroup就把該項對應的activity的window作為view添加到activitygroup所指定的容器(linearlayout)中。

先來貼出本例運行的效果圖如下:

Android入門之ActivityGroup+GridView實現Tab分頁標簽的方法

imageadapter是本實例的關鍵之一,它繼承于baseadapter,并加入一些自定義的方法。imageadapter的源碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.activitygroupdemo;
 
import android.content.context;
import android.graphics.drawable.colordrawable;
import android.view.view;
import android.view.viewgroup;
import android.widget.baseadapter;
import android.widget.gridview;
import android.widget.imageview;
/**
 *
 * @author gv
 *
 */
public class imageadapter extends baseadapter {
 private context mcontext;
 private imageview[] imgitems;
 private int selresid;
  public imageadapter(context c,int[] picids,int width,int height,int selresid) {
    mcontext = c;
    this.selresid=selresid;
    imgitems=new imageview[picids.length];
    for(int i=0;i<picids.length;i++)
    {
     imgitems[i] = new imageview(mcontext);
     imgitems[i].setlayoutparams(new gridview.layoutparams(width, height));//設置imageview寬高
     imgitems[i].setadjustviewbounds(false);
     //imgitems[i].setscaletype(imageview.scaletype.center_crop);
     imgitems[i].setpadding(2, 2, 2, 2);
     imgitems[i].setimageresource(picids[i]);
    }
  }
  public int getcount() {
    return imgitems.length;
  }
 
  public object getitem(int position) {
    return position;
  }
 
  public long getitemid(int position) {
    return position;
  }
 
  /**
   * 設置選中的效果
   */
  public void setfocus(int index)
  {
    for(int i=0;i<imgitems.length;i++)
    {
      if(i!=index)
      {
       imgitems[i].setbackgroundresource(0);//恢復未選中的樣式
      }
    }
    imgitems[index].setbackgroundresource(selresid);//設置選中的樣式
  }
  
  public view getview(int position, view convertview, viewgroup parent) {
    imageview imageview;
    if (convertview == null) {
     imageview=imgitems[position];
    } else {
      imageview = (imageview) convertview;
    }
    return imageview;
  }
}

其中setfocus(int)這個方法是個關鍵點,即實現選中的效果。例如有abcd4個item,其中c被選中了,那么除c以外的item都被設置為未被選中的樣式,而c則設置為選中的樣式。

接下來就開始寫主activity,主activity包含gridview控件,名為gvtopbar,有2點是需要注意一下的。

1.setnumcolumns():必須要使用setnumcolumns來設置列數,因為這個gridview只有一行,即所有的item都在同一行,item數量即為列數。

2.setselector(new colordrawable(color.transparent)):把系統默認選中的背景色透明化,因為我們已經在baseadapter中加入了setfocus()來改變選中的樣式。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.activitygroupdemo;
import android.app.activity;
import android.app.activitygroup;
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
import android.content.intentfilter;
import android.graphics.color;
import android.graphics.drawable.colordrawable;
import android.os.bundle;
import android.util.log;
import android.view.gravity;
import android.view.view;
import android.view.window;
import android.view.viewgroup.layoutparams;
import android.widget.adapterview;
import android.widget.gridview;
import android.widget.linearlayout;
import android.widget.toast;
import android.widget.adapterview.onitemclicklistener;
/**
 *
 * @author gv
 *
 */
public class activitygroupdemo extends activitygroup {
 
 private gridview gvtopbar;
 private imageadapter topimgadapter;
 public linearlayout container;// 裝載sub activity的容器
 
 /** 頂部按鈕圖片 **/
 int[] topbar_image_array = { r.drawable.topbar_home,
  r.drawable.topbar_user, r.drawable.topbar_shoppingcart,
  r.drawable.topbar_note };
 @override
 public void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.main);
 gvtopbar = (gridview) this.findviewbyid(r.id.gvtopbar);
 gvtopbar.setnumcolumns(topbar_image_array.length);// 設置每行列數
 gvtopbar.setselector(new colordrawable(color.transparent));// 選中的時候為透明色
 gvtopbar.setgravity(gravity.center);// 位置居中
 gvtopbar.setverticalspacing(0);// 垂直間隔
 int width = this.getwindowmanager().getdefaultdisplay().getwidth()
  / topbar_image_array.length;
 topimgadapter = new imageadapter(this, topbar_image_array, width, 48,
  r.drawable.topbar_itemselector);
 gvtopbar.setadapter(topimgadapter);// 設置菜單adapter
 gvtopbar.setonitemclicklistener(new itemclickevent());// 項目點擊事件
 container = (linearlayout) findviewbyid(r.id.container);
 switchactivity(0);//默認打開第0頁
 }
 class itemclickevent implements onitemclicklistener {
 
 public void onitemclick(adapterview<?> arg0, view arg1, int arg2,
  long arg3) {
  switchactivity(arg2);
 }
 }
 /**
 * 根據id打開指定的activity
 * @param id gridview選中項的序號
 */
 void switchactivity(int id)
 {
 topimgadapter.setfocus(id);//選中項獲得高亮
 container.removeallviews();//必須先清除容器中所有的view
 intent intent =null;
 if (id == 0 || id == 2) {
  intent = new intent(activitygroupdemo.this, activitya.class);
 } else if (id == 1 || id == 3) {
  intent = new intent(activitygroupdemo.this, activityb.class);
 }
 intent.addflags(intent.flag_activity_clear_top);
 //activity 轉為 view
 window subactivity = getlocalactivitymanager().startactivity(
  "subactivity", intent);
 //容器添加view
 container.addview(subactivity.getdecorview(),
  layoutparams.fill_parent, layoutparams.fill_parent);
 }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品自产拍在线观看 | 在线视频国产一区 | 一级黄色片aaa | 久久久一区二区三区 | www.色婷婷 | 精品在线一区二区 | 国产精品视频一区二区三区不卡 | 日韩精品免费视频 | 三及毛片 | 黄色a视频| 亚洲免费在线播放 | 国产乱码一区二区三区在线观看 | 狠狠操综合网 | 日韩三级在线观看 | 天天躁人人躁人人躁狂躁 | 欧美日韩一区在线 | 免费亚洲片 | 狠狠操夜夜爱 | 成人国产精品视频 | 懂色av一区二区三区 | 精品日韩在线 | 国产第一亚洲 | 日韩精品一区二区三区四区 | 日韩国产在线看 | 国产综合亚洲精品一区二 | 日韩有码在线播放 | 国产精品无码久久久久 | 成人精品在线观看 | 黄色毛片在线观看 | 久久久久久国产精品mv | 久久作爱视频 | 欧美大成色www永久网站婷 | 中文字幕免费观看 | 国产免费一区二区 | 免费成人在线视频网站 | 精品福利一区二区三区 | 国产欧美日韩精品一区 | 亚洲国产一级 | 欧美一级在线 | 亚洲精品不卡 | 免费又黄又爽又猛的毛片 |