没事做,看了一个开源框架,是仿网易的图片显示的。其中用到了Gallery,然后就学习了一下Gallery,希望学了之后对看这个开源框架有帮助。
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Gallery gallery = (Gallery) findViewById(R.id.gallery);
//设置适配器
gallery.setAdapter(new MyAdapter(MainActivity.this));
}
class MyAdapter extends BaseAdapter{
private Context mContext;
private int[] myImageIds = {R.drawable.date,R.drawable.picture,R.drawable.aa,R.drawable.bb,R.drawable.cc};
public MyAdapter(Context c){
mContext= c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return myImageIds.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//创建一个ImageView对象
ImageView iv = new ImageView(mContext);
iv.setImageResource(this.myImageIds[position]);
//ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分
iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
//设置这个ImageView对象的宽和高,单位是dip
iv.setLayoutParams(new Gallery.LayoutParams(300, 300));
return iv;
}
}
}
xml文件如下:
<RelativeLayout 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" >
<Gallery
android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>