时间:2021-05-20
本文实例讲述了Android开发中画廊视图Gallery的两种使用方法。分享给大家供大家参考,具体如下:
第一种方法:
第一步:设计xml布局文件
代码如下:main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Gallery android:id="@+id/myGallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:spacing="3px" android:text="@string/hello" /></LinearLayout>第二步:自定义一个适配器,这个适配器继承BaseAdapter这个类
代码如下:
package net.loonggg.gallery;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;public class ImageGalleryAdapter extends BaseAdapter {private Context context;// 里面所有的方法表示的是可以根据指定的显示图片的数量,进行每个图片的处理private int[] image = new int[] { R.drawable.ispic_a, R.drawable.ispic_b,R.drawable.ispic_c, R.drawable.ispic_d, R.drawable.ispic_e };public ImageGalleryAdapter(Context context) {this.context = context;}public int getCount() { // 取得要显示内容的数量return image.length;}public Object getItem(int position) { // 每个资源的位置return image[position];}public long getItemId(int position) { // 取得每个项的IDreturn image[position];}// 将资源设置到一个组件之中,很明显这个组件是ImageViewpublic View getView(int position, View convertView, ViewGroup parent) {ImageView iv = new ImageView(context);iv.setBackgroundColor(0xFFFFFFFF);iv.setImageResource(image[position]);// 给ImageView设置资源iv.setScaleType(ImageView.ScaleType.CENTER);// 设置对齐方式iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));return iv;}}第三步:主方法:
package net.loonggg.gallery;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Gallery;import android.widget.Toast;public class GalleryActivity extends Activity {private Gallery myGallery;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);myGallery = (Gallery) findViewById(R.id.myGallery);myGallery.setAdapter(new ImageGalleryAdapter(this));myGallery.setOnItemClickListener(new OnItemClickListenerImpl());}private class OnItemClickListenerImpl implements OnItemClickListener {public void onItemClick(AdapterView<?> parent, View view, int position,long id) {Toast.makeText(GalleryActivity.this, String.valueOf(position),Toast.LENGTH_SHORT).show();}}}第二种方法:
第一步:设计xml布局文件
代码如下:main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="bottom" android:orientation="vertical" > <ImageSwitcher android:id="@+id/is" android:layout_width="fill_parent" android:layout_height="wrap_content" > </ImageSwitcher> <Gallery android:id="@+id/myGallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:spacing="3px" /></LinearLayout>gallery_item.xml文件:
代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#FFFFFF" android:orientation="horizontal" > <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" /></LinearLayout>第二步:MainActivity
代码如下:
package net.loonggg.gallery2;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Gallery;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.SimpleAdapter;import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity {private ImageSwitcher is;private Gallery gallery;private SimpleAdapter adapter;private List<Map<String, Integer>> list = new ArrayList<Map<String, Integer>>();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);is = (ImageSwitcher) findViewById(R.id.is);is.setFactory(new ViewFactoryImpl());initAdapter();gallery = (Gallery) findViewById(R.id.myGallery);gallery.setAdapter(adapter); // 为gallery设置合适的适配器gallery.setOnItemClickListener(new OnItemClickListenerImpl());}public class OnItemClickListenerImpl implements OnItemClickListener { // gallery的点击事件@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {Map<String, Integer> map = (Map<String, Integer>) parent.getAdapter().getItem(position);is.setImageResource(map.get("image"));}}public void initAdapter() { // 这个方法的功能是:从R.java文件中获取图片资源的id,如果资源图片数量比较多,用数组的方法一一定义,就不太合适,这种方法最好了。Field[] fields = R.drawable.class.getDeclaredFields();for (int x = 0; x < fields.length; x++) {if (fields[x].getName().startsWith("ispic_")) { // 根据图片的名称取出想要的图片Map<String, Integer> map = new HashMap<String, Integer>();try {map.put("image", fields[x].getInt(R.drawable.class));} catch (Exception e) {e.printStackTrace();}list.add(map);}}adapter = new SimpleAdapter(MainActivity.this, list,R.layout.grid_item, new String[] { "image" },new int[] { R.id.iv });}public class ViewFactoryImpl implements ViewFactory {@Overridepublic View makeView() {ImageView iv = new ImageView(MainActivity.this);iv.setBackgroundColor(0xFFFFFFFF);iv.setScaleType(ImageView.ScaleType.CENTER);iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));return iv;}}}更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android开发实现Gallery画廊效果的方法。分享给大家供大家参考,具体如下:画廊使用Gallery表示,按水平方向显示内容,并且可以用手指
画廊视图(Gallery)表示,能够按水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可以响应事件显示信息。在使用画
本文实例分析了Yii中Model(模型)的创建及使用方法。分享给大家供大家参考,具体如下:YII实现了两种模型,表单模型(CFormModel类)和Active
Android闹钟alarmManager+PendingIntent的使用方法,供大家参考,具体内容如下这次给大家分享两种闹钟:第一种是当到达闹钟时间后执行一
前言Javascript日期格式化在日常开发中还是挺常见的,那么下面就给大家分享Javascript时间格式format函数的两种使用方法示例,一起来看看。方法