2012-01-07 16 views
7

私はアンドロイドでスライドショーアプリケーションを開発したいと考えています。私の必要条件は、私は私のdrawableフォルダ(外付けストレージではない)に20個の(一貫していない)イメージセットを持っていました。 今、私はある一定の時間の制限でとこのイメージのセットを示します。私はそのコードの中にアンドロイド基本的なサンプルのスライドショーのためのコードを持っていたどのように時間間隔を設定することができます。こんにちは私の友人、どのように私はアンドロイドでSlideShowを実装できますか?

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 }; 

} 

で、xmlファイルは、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> 
+0

で、私はこの記事では、あなたのコードを使用し私のコードはまた、あなたのコードに返事したコードスニペットを追加しましたしかし、アプリケーションを実行すると、私はちょうど助けてください、 – androidqq6

答えて

1
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); 

} 
+0

私はこのコードのスニペットを追加してください助けてください、私はしようとしていない画面(画像のスライドショー)のボタンで画像のスライダーストリップとちょうど普通のギャラリーを与えた – Aerrow

+0

OnCreateで – selvaiyyamperumal

+0

このコードも入れてください最終ハンドラmHandle r =新しいHander(); – selvaiyyamperumal

関連する問題