一、今天总结了下几种常用的控件GridView,Gallery,ListView,希望对大家有帮助,基本是改的例子程序,先看效果图:
主页面效果:
点击GridView后出现的界面:
点击Gallery后出现的界面:
点击ListView后出现的界面:
二、先把xml文件的代码贴出来:
1、main.xml文件中的代码
2、gallery.xml中的代码:
3、gridview.xml中的代码:
4、listview.xml中的代码:
5、user.xml中的代码:
三,java类中的代码:
1、MainActivity类中的代码:
package com.cn.android;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //初始化button按钮 initGridViewGalleryListViewButton(); } //实现button按钮的方法 private void initGridViewGalleryListViewButton() { // TODO Auto-generated method stub //跳转到GridView的Actvity中 Button GridViewButton = (Button)findViewById(R.id.gridview_button); GridViewButton.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { // TODO Auto-generated method stub Intent i_gridview = new Intent(); i_gridview.setClass(MainActivity.this, GridViewActivity.class); startActivity(i_gridview); } }); //跳转到Gallery的Activity中 Button GalleryButton = (Button)findViewById(R.id.gallery_button); GalleryButton.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { // TODO Auto-generated method stub Intent i_gallery = new Intent(); i_gallery.setClass(MainActivity.this, GalleryActivity.class); startActivity(i_gallery); } }); //跳转到ListView的Activity中 Button ListViewButton = (Button)findViewById(R.id.listview_button); ListViewButton.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { // TODO Auto-generated method stub Intent i_listview = new Intent(); i_listview.setClass(MainActivity.this,ListViewActivity.class); startActivity(i_listview); } }); }}2、GridViewActivity中的代码:
package com.cn.android;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class GridViewActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.gridview); GridView gridview = (GridView) findViewById(R.id.myGrid); gridview.setAdapter(new ImageAdapter(this)); } //定义ImageAdapter类 public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView p_w_picpathView; if (convertView == null) { p_w_picpathView = new ImageView(mContext); p_w_picpathView.setLayoutParams(new GridView.LayoutParams(50, 50)); p_w_picpathView.setAdjustViewBounds(false); p_w_picpathView.setScaleType(ImageView.ScaleType.FIT_XY); p_w_picpathView.setPadding(10, 10, 10, 10); } else { p_w_picpathView = (ImageView) convertView; } p_w_picpathView.setImageResource(mThumbIds[position]); return p_w_picpathView; } private Integer[] mThumbIds = { R.drawable.sample_thumb_0, R.drawable.sample_thumb_1, R.drawable.sample_thumb_2, R.drawable.sample_thumb_3, R.drawable.sample_thumb_4, R.drawable.sample_thumb_5, R.drawable.sample_thumb_6, R.drawable.sample_thumb_7, R.drawable.sample_thumb_0, R.drawable.sample_thumb_1, R.drawable.sample_thumb_2, R.drawable.sample_thumb_3, R.drawable.sample_thumb_4, R.drawable.sample_thumb_5, R.drawable.sample_thumb_6, R.drawable.sample_thumb_7, R.drawable.sample_thumb_0, R.drawable.sample_thumb_1, R.drawable.sample_thumb_2, R.drawable.sample_thumb_3, R.drawable.sample_thumb_4, R.drawable.sample_thumb_5, R.drawable.sample_thumb_6, R.drawable.sample_thumb_7, }; }}3、GalleryActivity中的代码:
package com.cn.android;import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.ContextMenu.ContextMenuInfo;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;import android.widget.Toast;import android.widget.AdapterView.AdapterContextMenuInfo;import android.widget.AdapterView.OnItemClickListener;public class GalleryActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.gallery); // Reference the Gallery view Gallery gallery = (Gallery) findViewById(R.id.gallery); // Set the adapter to our custom adapter (below) gallery.setAdapter(new ImageAdapter(this)); // Set a item click listener, and just Toast the clicked position gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Toast.makeText(GalleryActivity.this, "" + position, Toast.LENGTH_SHORT).show(); } }); // We also want to show context menu for longpressed items in the gallery registerForContextMenu(gallery); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(R.string.gallery_text); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT).show(); return true; } public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext; public ImageAdapter(Context c) { mContext = c; // See res/values/attrs.xml for the4、ListViewActivity中的代码that defines // Gallery1. TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); mGalleryItemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); } public int getCount() { return mImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(mContext); i.setImageResource(mImageIds[position]); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setLayoutParams(new Gallery.LayoutParams(136, 88)); // The preferred Gallery item background i.setBackgroundResource(mGalleryItemBackground); return i; } private Integer[] mImageIds = { R.drawable.gallery_photo_1, R.drawable.gallery_photo_2, R.drawable.gallery_photo_3, R.drawable.gallery_photo_4, R.drawable.gallery_photo_5, R.drawable.gallery_photo_6, R.drawable.gallery_photo_7, R.drawable.gallery_photo_8 }; }}
package com.cn.android;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class ListViewActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listview); ArrayList四、在values的文件夹下面建一个attrs.xml文件:gallery设置样式的功能> users = new ArrayList >(); for (int i = 0; i < 10; i++) { HashMap user = new HashMap (); user.put("img", R.drawable.icon); user.put("username", "姓名(" + i+")"); user.put("age", (20 + i) + ""); users.add(user); } SimpleAdapter saImageItems = new SimpleAdapter(this, users,// 数据来源 R.layout.user,//每一个user xml 相当ListView的一个组件 new String[] { "img", "username", "age" }, // 分别对应view 的id new int[] { R.id.img, R.id.name, R.id.age }); // 获取listview ((ListView) findViewById(R.id.users)).setAdapter(saImageItems); }}
<?xml version="1.0" encoding="utf-8"?>
<resources>五、Manifest.xml文件中的代码:
六、特别说明:程序中有的图片我没有添加,大家找一些图片特换掉就行了,大小不合适的就调一下布局,设置一些参数就可以了!希望大家谅解:
drawable目录下的图片: