android自动画廊,Android:使画廊无限循环的图像

android自动画廊,Android:使画廊无限循环的图像我在我的项目中使用了一个画廊,其中我添加了四个图像,我希望它从右侧和左侧都是无限的.我该如何做到这一点?解决方法:主要思想是在你的getView方法中,你必须使用position=position%imagesArray.length;if(position<0)position=position+imagesArray.length;imagesArray是将图像保存…

大家好,又见面了,我是你们的朋友全栈君。

我在我的项目中使用了一个画廊,其中我添加了四个图像,我希望它从右侧和左侧都是无限的.我该如何做到这一点?

解决方法:

主要思想是在你的getView方法中,你必须使用

position = position % imagesArray.length;

if (position < 0)

position = position + imagesArray.length;

imagesArray是将图像保存在res文件夹中的数组.例如:

public class CircularGallery extends Activity {

/** Called when the activity is first created. */

private Integer[] imagesArray = { R.drawable.picture1, R.drawable.picture2, R.drawable.picture3, R.drawable.picture4, R.drawable.picture5, R.drawable.picture6 , R.drawable.picture7 };

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Gallery g = (Gallery) findViewById(R.id.gallery);

g.setAdapter(new ImageAdapter(this));

g.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView parent, View v, int position, long id) {

if (position >= imagesArray.length) {

position = position % imagesArray.length;

}

Toast.makeText(CircularGallery.this, “” + position, Toast.LENGTH_SHORT).show();

}

});

}

public class ImageAdapter extends BaseAdapter {

int mGalleryItemBackground;

private Context mContext;

public ImageAdapter(Context c) {

mContext = c;

TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);

mGalleryItemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);

a.recycle();

}

public int getCount() {

return Integer.MAX_VALUE;

}

public Object getItem(int position) {

if (position >= imagesArraylength) {

position = position % mImageIds.length;

}

return position;

}

public long getItemId(int position) {

if (position >= imagesArray.length) {

position = position % imagesArray.length;

}

return position;

}

public View getView(int position, View convertView, ViewGroup parent) {

ImageView i = new ImageView(mContext);

if (position >= imagesArray.length) {

position = position % imagesArray.length;

}

i.setImageResource(imagesArray[position]);

i.setLayoutParams(new Gallery.LayoutParams(80, 80));

i.setScaleType(ImageView.ScaleType.FIT_XY);

i.setBackgroundResource(mGalleryItemBackground);

return i;

}

public int checkPosition(int position) {

if (position >= imagesArray.length) {

position = position % imagesArray.length;

}

return position;

}

}}

此外,一些开发人员已经完成了这样的功能,您可以在他们的博客上找到来源

标签:android-gallery,android

来源: https://codeday.me/bug/20191007/1867746.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130233.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月14日 下午6:00
下一篇 2022年6月14日 下午6:00


相关推荐

  • java 设置时区_Java Calendar如何设置时区

    java 设置时区_Java Calendar如何设置时区首页>基础教程>常用类>Calendar类JavaCalendar如何设置时区JavaCalendar类设置市区实例一:TimeZone.setDefault(TimeZone.getTimeZone(“GMT+8”));Calendarc=Calendar.getInstance(TimeZone.getTimeZone(“GMT+8”));c.setTi…

    2022年6月4日
    57
  • rescal阅读

    rescal阅读基于三向张量分解 factorizatio waytensor 的关系学习方法我们的方法与其他张量方法不同 我们的方法能够可以通过模型的潜在组件进行集体学习并提供一种计算分解的有效的算法 我们证实我们关于模型集体学习能力的理论考虑通过在新数据集和实体解析中常用的数据集上进行实验的方法 relationalle

    2026年3月19日
    1
  • 或非门_与非门转化为或非门

    或非门_与非门转化为或非门 

    2022年8月2日
    11
  • Teradata 记事本

    Teradata 记事本TERADATA 创建表的简要写法 CREATEMULTIS nameastb name1withdat nbsp nbsp nbsp 带数据建表 完全复制表结构 CREATEMULTIS nameastb name1withnod 只建表结构 表结构存在差异改表名的写法如下 RENAMETABLEt

    2026年3月18日
    1
  • sd卡插拔

    sd卡插拔android/frameworks/base/core/java/android/os/storage/VolumeInfo.java:128:sEnvironmentToBroadcast.put(Environment.MEDIA_UNMOUNTED,Intent.ACTION_MEDIA_UNMOUNTED);android/frameworks/b…

    2022年5月30日
    105
  • 大数据实时项目(采集部分)[通俗易懂]

    大数据实时项目(采集部分)[通俗易懂]第一章 实时需求概览1实时需求与离线需求的比较离线需求,一般是根据前一日的数据生成报表,虽然统计指标、报表繁多,但是对时效性不敏感。实时需求,主要侧重于对当日数据的实时监控,通常业务

    2022年8月2日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号