我如何能实现幻灯片在Android的? [英] How can i Implement SlideShow in android?

查看:232
本文介绍了我如何能实现幻灯片在Android的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望开发android的一个幻灯片应用程序。我的要求是,我有一组20(不是一个常数)在我的绘制文件夹的图像(不是外部存储)。 现在我展示这组图片在一定constat时限。我有一个code的幻灯片中的code Android的基本采样我如何设定的时间间隔。我的code是,

  SlideShow.java:


   包com.fsp.slideview;

进口android.app.Activity;
进口android.content.Context;
进口android.os.Bundle;
进口android.view.View;
进口android.view.ViewGroup;
进口android.view.Window;
进口android.view.animation.AnimationUtils;
进口android.widget.AdapterView;
进口android.widget.BaseAdapter;
进口android.widget.Gallery;
进口android.widget.Gallery.LayoutParams;
进口android.widget.ImageSwitcher;
进口android.widget.ImageView;
进口android.widget.ViewSwitcher;

公共类幻灯片扩展活动器具
        AdapterView.OnItemSelectedListener,ViewSwitcher.ViewFactory {

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        的setContentView(R.layout.slide_show);

        mSwitcher =(ImageSwitcher)findViewById(R.id.switcher);
        mSwitcher.setFactory(本);
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(这一点,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(这一点,
                android.R.anim.fade_out));

        画廊G =(图库论坛)findViewById(R.id.gallery);
        g.setAdapter(新ImageAdapter(本));
        g.setOnItemSelectedListener(本);
    }

    公共无效onItemSelected(适配器视图父,视图V,INT位置,长的id){
        mSwitcher.setImageResource(mImageIds [位置]);
    }

    公共无效onNothingSelected(适配器视图父){
    }

    公共查看makeView(){
        ImageView的我=新ImageView的(这一点);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(新ImageSwitcher.LayoutParams(
                LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        返回我;
    }

    私人ImageSwitcher mSwitcher;

    公共类ImageAdapter扩展了BaseAdapter {
        公共ImageAdapter(上下文C){
            mContext = C;
        }

        公众诠释getCount将(){
            返回mThumbIds.length;
        }

        公共对象的getItem(INT位置){
            返回的位置;
        }

        众长getItemId(INT位置){
            返回的位置;
        }

        公共查看getView(INT位置,查看convertView,ViewGroup中父){
            ImageView的我=新ImageView的(mContext);

            i.setImageResource(mThumbIds [位置]);
            i.setAdjustViewBounds(真正的);
            i.setLayoutParams(新Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
            i.setBackgroundResource(R.drawable.picture_frame);
            返回我;
        }

        私人语境mContext;

    }

    私人整数[] mThumbIds = {R.drawable.img1,R.drawable.img2,
            R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,
            R.drawable.img6,R.drawable.img7};

    私人整数[] mImageIds = {R.drawable.img1,R.drawable.img1,
            R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,
            R.drawable.img6,R.drawable.img7};

}
 

和XML文件,slide_show.xml

 < XML版本=1.0编码=UTF-8&GT?;
< RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>

    < ImageSwitcher
        机器人:ID =@ + ID /切换
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真/>

    <画廊
        机器人:ID =@ + ID /画廊
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =60dp
        机器人:layout_alignParentBottom =真
        机器人:layout_alignParentLeft =真
        机器人:后台=#55000000
        机器人:重力=center_vertical
        机器人:间距=16DP/>

< / RelativeLayout的>
 

解决方案

 最后的处理程序mHandler =新的处理程序();


    INT延迟= 1000; //延迟1秒。

    INT周期= 8000; //重复每4秒。

    定时器定时=新的Timer();

    timer.scheduleAtFixedRate(新的TimerTask(){

    公共无效的run(){

         mHandler.post(mUpdateResults);

    }

    },延迟,周期);

}
 

I wish to develop an Slide Show application in android. My requirement is, i had a set of 20 (not a constant) images in my drawable folder (not a External Storage). Now i show this set of images with in a certain constat time limit. I had a code for slideshow for android basic sample in that code how can i set time interval. My code is,

SlideShow.java:


   package com.fsp.slideview;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;

public class SlideShow extends Activity implements
        AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.slide_show);

        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        mSwitcher.setFactory(this);
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));

        Gallery g = (Gallery) findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
        g.setOnItemSelectedListener(this);
    }

    public void onItemSelected(AdapterView parent, View v, int position, long id) {
        mSwitcher.setImageResource(mImageIds[position]);
    }

    public void onNothingSelected(AdapterView parent) {
    }

    public View makeView() {
        ImageView i = new ImageView(this);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(new ImageSwitcher.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        return i;
    }

    private ImageSwitcher mSwitcher;

    public class ImageAdapter extends BaseAdapter {
        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 i = new ImageView(mContext);

            i.setImageResource(mThumbIds[position]);
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            i.setBackgroundResource(R.drawable.picture_frame);
            return i;
        }

        private Context mContext;

    }

    private Integer[] mThumbIds = { R.drawable.img1, R.drawable.img2,
            R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5,
            R.drawable.img6, R.drawable.img7 };

    private Integer[] mImageIds = { R.drawable.img1, R.drawable.img1,
            R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5,
            R.drawable.img6, R.drawable.img7 };

}

and the xml file is, slide_show.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageSwitcher
        android:id="@+id/switcher"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="#55000000"
        android:gravity="center_vertical"
        android:spacing="16dp" />

</RelativeLayout>

解决方案

    final Handler mHandler = new Handler();


    int delay = 1000; // delay for 1 sec.

    int period = 8000; // repeat every 4 sec.

    Timer timer = new Timer();

    timer.scheduleAtFixedRate(new TimerTask() {

    public void run() {

         mHandler.post(mUpdateResults);

    }

    }, delay, period);

}

这篇关于我如何能实现幻灯片在Android的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆