2012-01-07 33 views
7

Tôi muốn phát triển một ứng dụng Trình chiếu slide trong Android. Yêu cầu của tôi là, tôi đã có một bộ 20 (không phải là một hằng số) hình ảnh trong thư mục drawable của tôi (không phải là một lưu trữ bên ngoài). Bây giờ tôi hiển thị bộ ảnh này với giới hạn thời gian nhất định là. Tôi đã có một mã cho trình chiếu cho mẫu cơ bản android trong mã đó làm cách nào tôi có thể đặt khoảng thời gian. Mã của tôi là,Làm cách nào để triển khai SlideShow trong Android?

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

} 

và file xml là, 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

hi bạn của tôi, tôi đã sử dụng mã của bạn trong bài viết này cũng nói thêm đoạn mã thưa: mã của bạn, nhưng khi chạy ứng dụng nó đã cho tôi bộ sưu tập bình thường với thanh trượt hình ảnh trong nút màn hình không (hình ảnh trình chiếu) mà im cố gắng để có được, xin vui lòng giúp tôi, nhờ – androidqq6

Trả lời

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

nơi tôi thêm đoạn mã này – Aerrow

+0

hãy đặt nó trong OnCreate – selvaiyyamperumal

+0

vui lòng đặt mã này cũng là Trình xử lý cuối cùng mHandle r = new Hander(); – selvaiyyamperumal

Các vấn đề liên quan