android:singleline="true",网格(GridView)+图片(ImageView)+文字(TextView)

因为突发奇想,发现网上的例子的网格布局,只有图片的实例,没有加文字说明! 后来找到个是来自《Android核心技术与实例详解》一书的实例 ,使用的适配是SimpleAdapter,而我想用继承BaseAdapter类,重写getView方法.经过自己的资料的查阅与调试 ,完成了个小例子;

2 ^  X( Y2 j4 C" x1 e' ~$ F( m

4 Q4 r3 f0 Z% m3 h  a4 ^布局页面代码 有个layout4 {$ z7 H  A. h: ^( H: d5 R0 H0 K

" q* G9 j0 y* c# ^! f

gridView:<GridView$ B, R( r( o& `- a9 Z4 D+ B# {1 x/ n: k

5 D4 O' ]: B4 n5 c

xmlns:android="http://schemas.android.com/apk/res/android"s1 O3 I( |  v; `3 F

- d4 s3 N  d& K        android:id="@+id/gridview"* V0 A/ S0 y( B5 b( B# Q

8 ^- l2 l+ p# c. ^& N

android:layout_width="fill_parent"

8 Z( O. Q% R. J) z9 q2 c- a6 @   2 ~1 d: m2 L9 E$ @. C: U7 ^1 i& f

android:layout_height="fill_parent"3 b2 o) O/ d$ v6 Z

W7 n- i! c: G/ C7 w4 d

android:columnWidth="90dp"

) q& z% ]: W) t7 y* M4 l. _3 l   8 D. W! P4 t1 J" Y7 s# I  V7 b

android:numColumns="auto_fit"

! g/ a4 D2 z, u4 J5 p   9 l! M4 M. a7 r! G& l( G7 N/ T

android:verticalSpacing="10dp"

2 A8 G# W! E  y- {) {' k# a

* r/ y1 N+ A1 k: h        android:horizontalSpacing="10dp"

6 W* P, O6 |, C) k$ l' \   % A' R) Y5 [- E2 S; e  a; Z; A

android:stretchMode="columnWidth"2 b3 i. A+ |( F, p4 K2 G

8 ?1 `# t7 L" W# f4 U

android:gravity="center">. ?3 }% G5 n0 c6 p6 S

; `( p  P4 W& m4 T( m

8 i7 M3 m  m9 m5 g# G

" U, O# t& [" n7 e2 E</GridView>复制代码[/I]gridView的子视图,也就是每一个网格的内容页面布局<RelativeLayout1 s1 y) e. ~6 b" E

, l8 S. p3 C9 y- F

xmlns:android="http://schemas.android.com/apk/res/android"* N5 ^" ~9 e5 Z/ X

. R* b" K' v: p' u6 a

android:id="@+id/relaGrid"

; K3 R2 c( Q$ O5 {$ B  k   / _8 @$ K) t% x3 D) R4 p) }

android:orientation="vertical"

+ O4 f* D& w4 N, F7 {7 {5 W

8 k/ r. B* X) h/ g8 {% b  android:layout_width="match_parent", d' E7 a% m" k6 b5 k4 d4 j# u

1 P) ]3 k/ i4 Q/ o+ [* i) w

android:layout_height="match_parent">& k, A- e- \4 o9 J* T

* ]# D+ q. x' P$ {* }; H

<ImageView android:id="@+id/chooseImage" ! L; q' w' H  j  I. p( ~. {

. U! B% M: Z+ ~4 f

android:src="@drawable/ph1" " H4 ?! \( S2 h. |6 N

) k# l- A: @/ Y; w  l

android:layout_width="85dp" * i2 K* o4 E) k. x. R0 g$ K% D9 d) k

$ {0 j4 D* J2 \* v  Y2 [% F                        android:layout_height="85dp" 6 U4 s+ [$ n/ _& Y, N

# s/ p7 n) S, _( L2 C                        >* R- r7 {/ s! t

/ ?5 ~5 g) p( I' l" \( o

</ImageView>

; u5 K* {0 o( ^  k3 u

* T- r' C  K+ |7 }5 u2 |    <TextView android:id="@+id/chooseText"

0 u2 n4 V- K/ e6 D4 [; ?. s   " B/ z. \' r. E: ^, b

android:layout_height="wrap_content"

$ X) }) u4 f; _- R2 v, W: x6 q, ?

5 W5 x( x; G- H. f0 Y3 x: `                      android:layout_width="85dp"

% E8 n! c4 a3 U% A  `. d   + J# E/ d' ^' U' H. H4 i) N

android:text="TextView"

7 ]/ j0 I4 [1 _; d: y   9 k; L. P. G# o% ~6 d, U! f

android:layout_below="@+id/chooseImage" " X# }) e. R  P0 v" i5 l

, |* ]4 s! K5 G" W- O

android:gravity="center"7 B  B. Q3 @& ^; J( v: x

( @& j2 B" _* w: l6 B& g8 l

android:singleLine="true"

- E/ L( ~) t% l4 ^1 R1 H- ^2 [1 E   / n" }! ]  y2 y$ r# }" f; j  u

android:ellipsize="marquee"m5 X. Y+ `# g" v2 i6 x! A

% |+ g' m9 r' h6 o

android:marqueeRepeatLimit="marquee_forever"0 Y; C+ F2 p& o2 [

$ @+ u; P. A/ p# ]- [% p                      ></TextView>: l9 }$ C* d6 d* [2 A+ N5 |

& ]! h. U! g: {0 p" J

; L+ s& H9 m  m, E) ?$ N( S1 x

& m7 ^6 N4 w3 p; L+ K& ~</RelativeLayout>复制代码[/I]然后在res/drawable 放入9张图片资源

# U2 N  P- }3 A/ ]( @+ l

+ `/ Z2 `6 m+ I8 p& W6 zActivity页面代码public class WidgetActivity extends Activity {

& @. h, N, F' T3 K$ v. m

+ T) z" U4 L/ G8 J8 m    0 A2 j  i* Q6 Q! C

2 V1 R" M: m* M% q3 X

OnItemClickListener ocl_gridview = null;

+ X! v) I) V( j2 d7 b" i

9 D5 G' [8 Z# o        , {9 N" n' z! x, q1 u- X0 Q

" k% E7 s1 k& m# k8 g

@Override

" ]3 S' n" `% _& ~. c( T

5 M6 \5 E! S8 {1 m9 S' J+ \    public void onCreate(Bundle savedInstanceState) {

6 B6 K' A0 a6 q: S

2 x+ P* I9 ]" T, `        super.onCreate(savedInstanceState);V8 \& j3 @4 T; f0 l

3 h' \5 p, S4 p& i  `        setContentView(R.layout.main);2 a( Z, I  D5 o7 [$ h$ H6 c  o: {

+ ~( o4 ~8 w9 R; m( @        setTitle("九宫格布局");

3 i# }2 K. N0 @, y2 n( j' E/ H   1 I  _; r5 J1 f' I! J

, {5 y: H4 k- z. ?

1 _7 r. v% D- Y8 j) h        GridView gridview = (GridView) findViewById(R.id.gridview);

6 [) \3 \9 {! b2 L; z, T. x5 H   : C2 E+ D5 a1 X% v3 @, y! D

gridview.setAdapter(new ImageAdapter(this));

7 r5 l6 E2 i1 `

( Q* u/ h2 q- m- O+ P& E

& i" _; J8 z' A, Z: M& I5 I   0 ^7 q* S& X, E1 r

gridview.setOnItemClickListener(ocl_gridview);$ E* S$ E* i' k; Z2 G

; B1 U4 v) M$ K) N

}

6 T2 g5 Y* b2 S5 @! P6 B" X

' z4 A/ _2 ]/ \    # u& j9 J" B6 r, m$ s! S, z" e* T2 E

7 w7 M% l, @- N5 V+ F- O7 x+ ]

public void bindListener() {8 ~! q" N+ R$ _% o0 n9 K

; ^" R- W3 p+ {/ K+ h

ocl_gridview = new OnItemClickListener() {. C0 Z  g/ t1 S0 c! a* d

% K1 Y7 \3 e6 J3 R7 ~  _

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {4 b3 v1 w7 r9 \) ?: q* p+ v

2 @5 C- D& p& Q( X

, b& o# Y, _/ T4 Z) D( E

* t5 k! ^; M6 c4 L$ T+ X' J3 o! M            }; h. j! u% f7 z: e3 c( O

) }' [9 z2 ^% g9 R

};

, U/ ]+ y' [- {* x; _   6 E/ P+ D7 [/ C) B0 _1 Z

}" t, _9 p* @2 Y$ ]

0 W% [$ b! E" o; C6 E

}复制代码[/I]继承BaseAdapter的ImageAdapter类代码public class ImageAdapter extends BaseAdapter{

; I. p6 Y6 l' ?8 \3 a   0 J7 b' @2 v6 T

private Context mContext;

" e  U6 e, J4 e& d! i   , ~* f. v6 [, b$ W% |8 ?

9 u+ ?/ n6 s- t' i  G

: e1 T! u3 f$ ~* Z1 ~" a    public ImageAdapter(Context c) {

% M' d, N1 J# a   3 t, r7 q  f2 y- I

mContext = c;

/ \- F% [7 n/ J" w" O( D& l% N   0 w3 b9 a  i2 ~% W

}% }) u- v6 H0 m* @

6 V5 W3 i- o2 x1 H5 I) y

@Override, ^& ~  E" F. o- m! b2 N7 g

$ h! V" C( r$ Q        public int getCount() {6 L9 C1 E8 v# d9 u; _3 @

* ]+ N4 z: X; W( [                // TODO Auto-generated method stub

0 B5 [: W; x, p

) q6 ^$ f  b: E2 i                return mThumbIds.length;

) R# Y8 D) B4 H5 A* }! v   4 U/ G. O% F, ?" @9 |' ^

}

5 B) U. |& a7 G$ A+ i  m" x  {* ^   ' h0 r0 r* ^8 I. J5 k

! O; o; w& v8 M4 j+ I7 D% d

& g# `: z5 a, X6 z: J        @Override

7 @: r% t1 O. C9 i# T. q; r   / d! f6 l$ f! Q/ x# p

public View getView(int position, View convertView, ViewGroup arg2) {: {8 H; W1 ]5 ?* l. ?* |4 j. Q

) \( w5 L8 \/ l! t                View view = View.inflate(mContext, R.layout.relagrid, null);

! W$ e8 u8 j6 e1 q& A+ A   4 k. S8 P$ X4 C' o! R

RelativeLayout rl = (RelativeLayout) view.findViewById(R.id.relaGrid);: r/ V9 o, A3 H

5 Y# s( e7 g8 h+ Z

- F8 e8 c8 a$ @5 t$ Z

+ @. w" F2 J0 k; L* b        ImageView image = (ImageView) rl.findViewById(R.id.chooseImage);

( V" q) S8 a$ ?1 }8 y5 W. f6 H2 _6 [. \: x

; |0 J' |' E" C& u0 G1 ?8 W2 o/ p2 Z        TextView text = (TextView) rl.findViewById(R.id.chooseText);

/ A/ E1 o+ U7 L+ u   ; ^8 C7 R! l3 H" o  @5 J

# N0 |5 d6 N- g+ }* Z

6 L2 h" {4 q0 I4 p& }. V. s( E- Z

image.setImageResource(mThumbIds[position]);

2 B* T1 P/ P' f* u$ g+ P% s* e/ ~   ) _9 K8 e5 }& s

text.setText(mTextValues[position]);

: N9 M, d3 X& [" A/ n   ; ?# w; G8 e  n0 J% t" s

% o# q& z9 W1 |1 w& V: a

. H* `# S& ^2 o% d# k- t        return rl;9 Y' y2 S4 T  y: h; c0 x

) u; C, m: E5 t        }

; O/ `- n$ x5 e7 I5 g   ! R" g( P. G1 N

: [4 X! e+ |) N" r2 ]

7 d% w& C1 M4 S  [* O% ^! o        // references to our images, o5 v7 s6 Q: c, {* `

% N2 z! a( D* q! h. @    private Integer[] mThumbIds = {

: [: I6 ?3 m& g  j: L   2 ^. e2 B+ ~7 X/ s+ \3 w" m

R.drawable.ph1,R.drawable.ph2,R.drawable.ph3,

# F* E3 k; Y% M+ I# c1 W: i8 |6 E2 F

) t; [9 I/ c! A+ }7 ]$ {            R.drawable.ph4,R.drawable.ph5,R.drawable.ph6,

2 U# Q, E/ O5 S  |2 N: B   ) M! H5 [6 ^5 C  f4 Y1 A

R.drawable.ph7,R.drawable.ph8,R.drawable.ph9, N8 `: \' X( W; \8 ^+ T9 f

% s0 O& }1 ~( N8 R: J+ W

};

) i) [6 }# G7 {$ K4 a7 r

/ e  H8 ^5 q2 H. {+ d3 M% _1 {    4 Z" W; t& p" t; V* L

1 d6 c, R' z1 p7 E7 n/ F: I& e( T9 |

private String[] mTextValues = {8 l7 x, `/ b$ d- N( s

- v1 b! H) L( k) o/ z

"Button","TextView","EditText",; }  N) O$ W( g5 J3 @1 ?( }

7 \' R3 w! I6 e% r& k' T                    "CheckBox","Radio","Spinner",

" ~& Q4 g- G0 X. r   & U7 h8 U  U# V

"","",""

) Q& A  t$ L9 c% r. S   ! x" F* M7 V) d+ k* m0 a1 J5 l( T

};1 a; t% G; K9 ], X

* K0 o7 l9 a  Y

}复制代码[/I]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值