利用GridView显示SD卡的图片和两段文字

本实例包含一个主layout,含有一个GridView,还有一个用于填充GridView一行的layout,最后是重写一个GridView的适配器类。

由于图片是sd卡里的,没有图片id可用,所以需要重写BaseAdapter,而不是SimpleAdapter。

代码如下,很容易看懂。

1.main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/llRoot" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <GridView android:id="@+id/GridView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:verticalSpacing="5dip" android:horizontalSpacing="5dip" android:stretchMode="columnWidth"/> </LinearLayout>

 

2.grid_row.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rlGridRow" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/imageView01" android:layout_width="36.0dip" android:layout_height="36.0dip" android:scaleType="fitCenter" android:layout_alignParentLeft="true" /> <TextView android:id="@+id/txtLink1" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FF00FF" android:layout_toRightOf="@id/imageView01" /> <TextView android:id="@+id/txtLink2" android:paddingLeft="6.0dip" android:paddingBottom="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#00FFFF" android:textSize="12sp" android:layout_marginTop="-4.0dip" android:layout_toRightOf="@id/imageView01" android:layout_below="@id/txtLink1" /> </RelativeLayout>

 

3.java类

public class AndroidTest2_3_3 extends Activity { private static final String TAG = "AndroidTest2_3_3"; private Bitmap bit; private String textArray1[] = {"婺源", "丹霞山", "周庄"}; private String textArray2[] = {"油菜花盛开的地方", "红绿之间,雄壮与温柔", "梦中的水乡"}; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String imagepath = Environment.getExternalStorageDirectory() + "/abc.jpg"; bit = BitmapFactory.decodeFile(imagepath); GridView gv=(GridView)this.findViewById(R.id.GridView01); Log.d(TAG, "+++++++++++1"); ImageAdapter ia = new ImageAdapter(this); gv.setAdapter(ia);//为GridView设置数据适配器 } /** * GridView适配器类,创建单元格view * @author ameyume * */ public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context context) { Log.d(TAG, "ImageAdapter 1"); mContext = context; } public int getCount() { return textArray1.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { Log.d(TAG, "000000000000000"); View view = View.inflate(AndroidTest2_3_3.this, R.layout.grid_row, null); RelativeLayout rl = (RelativeLayout)view.findViewById(R.id.rlGridRow); ImageView image = (ImageView)rl.findViewById(R.id.imageView01); image.setImageBitmap(bit); TextView tv1 = (TextView)rl.findViewById(R.id.txtLink1); tv1.setText(textArray1[position]); TextView tv2 = (TextView)rl.findViewById(R.id.txtLink2); tv2.setText(textArray2[position]); return rl; } } }

 

运行效果如图:

利用GridView显示SD卡的图片和两段文字_第1张图片

你可能感兴趣的:(android,object,String,layout,Class,encoding)