网格(GridView)+图片(ImageView)+文字(TextView)"/>
android:singleline=quot;truequot;,网格(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=""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=""* 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]
更多推荐
android:singleline=quot;truequot;,网格(GridView)+图片(ImageView)+文字(TextView)
发布评论