`

gallery显示图片轮换(手动和自动)

阅读更多
1.gallery.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:cacheColorHint="#00000000"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
 
<FrameLayout
android:id="@+id/gallerylayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!-- 广告图片 -->
<Gallery android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="160dp"   
        android:spacing="1dp"  
        android:fadingEdge="none"
    />
    <LinearLayout
android:orientation="vertical"
android:layout_gravity="bottom"
android:background="@drawable/boke_titlebg"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextSwitcher
android:id="@+id/TextSwitcher01"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TextSwitcher>
    <LinearLayout
android:id="@+id/hintlayout"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
2.代码中添加
package com.example.imageswicher;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher;
public class GalleryActivity extends Activity implements ViewSwitcher.ViewFactory{
private LinearLayout mHintLayout;
private TextSwitcher switcher;
private Gallery g;
private int gallerypisition = 0;
private int count;
private Timer autoGallery;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.adergallery);
mHintLayout = (LinearLayout) findViewById(R.id.hintlayout);
switcher = (TextSwitcher) findViewById(R.id.TextSwitcher01);
switcher.setFactory(this);
g = (Gallery)findViewById(R.id.gallery);
InitialMain();
}
private void InitialMain() {
g.setSelection(gallerypisition);
g.setAdapter(new ImageAdapter(this));
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {

}

});
g.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (autoGallery != null) {
autoGallery.cancel();
autoGallery = null;
}
} else if (event.getAction() == MotionEvent.ACTION_UP) {
if (autoGallery == null) {
audoGallery();
}
}
return false;
}
});
g.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
gallerypisition = position;
for (int i = 0; i < count; i++) {
((TextView) mHintLayout.getChildAt(i))
.setBackgroundResource(R.drawable.nofocus);

}
((TextView) mHintLayout.getChildAt(position))
.setBackgroundResource(R.drawable.focus);
// switcher.setText(Title[position]);
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub

}

});
count = mImageIds.length;
fillHintLayout();

}

private void fillHintLayout() {
for (int i = 0; i < count; i++) {
TextView textView = new TextView(this);
String textvalue = String.valueOf(i + 1);
textView.setTextColor(Color.WHITE);
textView.setText(textvalue);
textView.setGravity(Gravity.CENTER);
textView.setBackgroundResource(R.drawable.nofocus);
mHintLayout.addView(textView);
}
}
private void audoGallery() {
autoGallery = new Timer();
autoGallery.schedule(new TimerTask() {
@Override
public void run() {
if (gallerypisition < count - 1) {
gallerypisition = gallerypisition + 1;
} else {
gallerypisition = 0;
}
autoGalleryHandler.sendEmptyMessage(1);
}
}, 5000, 5000);
}
Handler autoGalleryHandler = new Handler() {
public void handleMessage(Message message) {
super.handleMessage(message);
switch (message.what)
{
case 1:
g.setSelection(gallerypisition);
break;
}
}
};
@Override
public View makeView() {
// TODO Auto-generated method stub
TextView tv = new TextView(this);
tv.setTextColor(Color.WHITE);
tv.setTextSize(18);
return tv;
}

    public class ImageAdapter extends BaseAdapter {
        int mGalleryItemBackground;
       
        public ImageAdapter(Context c) {
            mContext = c;
        }

        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(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
           
            // The preferred Gallery item background
            i.setBackgroundResource(mGalleryItemBackground);
           
            return i;
        }

        private Context mContext;
      
    }
    private Integer[] mImageIds = {
            R.drawable.android_jd_buy_loading,
            R.drawable.android_jd_buy_loading,
            R.drawable.android_jd_buy_loading,
            R.drawable.android_jd_buy_loading,
            R.drawable.android_jd_buy_loading
    };
}
  • 大小: 25.8 KB
分享到:
评论

相关推荐

    Gallery 图片滑动 手动滑动

    在`Gallery`中,每个项目都是一张图片或一个自定义视图,可以自由定制显示内容。 实现`Gallery`的基本步骤如下: 1. 在XML布局文件中添加`Gallery`控件: ```xml &lt;Gallery android:id="@+id/gallery" android:...

    Android Gallery 一次一张图片,可以循环显示,可显示当前为第几张图片

    总结一下,要实现“Android Gallery 一次一张图片,可以循环显示,可显示当前为第几张图片”的功能,你需要: 1. 自定义`Adapter`,处理边界条件,实现循环显示。 2. 添加文本视图显示图片序号,并在`...

    xml方式载入图片自动轮换显示

    本教程将详细讲解如何使用XML来实现图片的自动轮换显示,主要涉及的技术包括Flash、XML以及ActionScript 3.0。 首先,我们需要理解XML的基本结构。XML文档由元素(Element)、属性(Attribute)和文本内容组成。在...

    gallery 图片自动滑动

    "Gallery 图片自动滑动"是一种常见的用户界面功能,尤其在移动应用和网站中非常流行。这个功能允许用户轻松地浏览一系列图片,通过简单的手势(如滑动手指)实现图片的切换,提供了一种直观、流畅的用户体验。下面将...

    JS图片轮换广告代码

    3. **定时器**:自动轮换功能通常由`setInterval`函数实现,每隔一定时间执行一次切换图片的函数。 4. **过渡效果**:为了使轮换更吸引人,常会使用CSS3的过渡或JavaScript动画库(如jQuery的animate方法)来创建...

    自定义Gallery 滑动中图片自动突出显示

    总之,"自定义Gallery 滑动中图片自动突出显示"这个主题涉及到Android开发中的控件自定义、事件监听、动画实现和性能优化等多个方面。通过深入学习和实践,开发者可以更好地理解和掌握Android UI开发中的技巧,从而...

    Gallery循环删除图片

    在实际开发中,可能会包含一个自定义的Gallery子类,增加了动态加载和删除图片的功能,或者是用来演示如何使用反射和循环效果的代码片段。 总结来说,"Gallery循环删除图片"涉及了Android UI组件的使用、数据适配、...

    flash+xml图片轮换功能

    在IT行业中,Flash和XML是两种非常重要的技术,它们结合使用可以实现许多创新的交互式设计,例如图片轮换功能。本示例聚焦于利用Flash的ActionScript与XML数据进行结合,以创建一个时尚且漂亮的图片轮播效果。以下是...

    android 3D gallery 显示图片

    "android 3D gallery 显示图片"这个主题主要涵盖了如何在Android应用中实现一个可以360度无限滚动展示图片的组件,这种效果通常会给用户带来更丰富的视觉体验。以下将详细介绍实现这一功能的关键知识点。 1. **...

    android运用gallery浏览图片并自动滑动

    在`RecyclerView`中,你可以通过`LinearLayoutManager`和`SnapHelper`来实现类似`Gallery`的自动滑动效果。 总结一下,本示例涉及了以下几个关键知识点: 1. Android `Gallery`组件及其基本使用。 2. 自定义`...

    广告图片Gallery,及自动轮播图片Gallery

    基于ViewPager的用户指引,广告图片Gallery,及自动轮播图片Gallery,使用起来超简单 eg: imageIndicatorView = (ImageIndicatorView) findViewById(R.id.indicate_view); final Integer[] resArray = new Integer...

    Gallery浏览图片

    4. **图片加载库**:为了高效地加载和显示大图片,开发者可能使用了像`Universal Image Loader`或`Picasso`这样的第三方库。 5. **样式和动画**:开发者可能通过自定义样式或者添加动画效果,来增强`Gallery`的视觉...

    Android中gallery图片自动切换Demo

    但鉴于这个题目,我们将讨论如何在旧版本的Android系统中实现`Gallery`的图片自动切换效果。 **一、Gallery组件** `Gallery`是Android的一种视图组件,它允许用户水平滚动浏览项目列表,每个项目可以是一个图片...

    gallery实现图片的展示

    为了实现描述中所说的“在左右两边显示部分的图片”效果,你可以通过调整`Gallery`的`android:scrollOffset`属性来控制预览图片的显示。这个属性定义了在主视图之外可见的像素数。例如: ```xml &lt;Gallery ... ...

    Android读取sdcard上的图片并用Gallery显示

    本文将深入探讨如何从SDCard读取图片并将其显示在Gallery组件中,以及实现点击Gallery中的图片后全屏显示的逻辑。首先,我们需要了解Android的文件系统和权限管理。 1. Android文件系统: Android系统的外部存储...

    Gallery和ImageSwitcher同步自动(滚动)播放图片库

    1. **设置布局**:在XML布局文件中,放置`Gallery`和`ImageSwitcher`,并确保`ImageSwitcher`有一个`ImageView`作为子视图,用于显示图片。 ```xml &lt;Gallery android:id="@+id/gallery" android:layout_width=...

    android gallery图片轮播

    在图片轮播中,它们可以无缝集成到ViewPager中,实现动态加载和显示图片。 5. **自定义ViewGroup**:如果需要更高级的定制,比如添加动画效果或者特殊的布局,开发者可以创建一个新的ViewGroup子类,重写`onLayout...

    自定义控件实现listView中的图片轮换

    4. **图片轮换**: 图片轮换通常借助于定时器(如Handler或Timer)和动画库(如Android的Animation或者第三方库如 Glide、Picasso)。通过设置定时任务,每隔一定时间更新ImageView的图片源,从而实现轮播。 5. **...

    Android基于Gallery的图片播放器

    总结起来,Android基于Gallery的图片播放器项目可以帮助开发者掌握Android UI组件的使用,特别是`Gallery`和`ImageSwitcher`,以及数据绑定、事件监听和图片加载策略。同时,这也是一个提升用户体验设计和性能优化的...

    Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库

    要实现自动滚动播放图片库,我们首先需要在布局文件中加入 `Gallery` 和 `ImageSwitcher`: ```xml &lt;Gallery android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="wrap_...

Global site tag (gtag.js) - Google Analytics