我如何能实现幻灯片在Android的? [英] How can i Implement SlideShow in android?
本文介绍了我如何能实现幻灯片在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:机器人=http://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屋!
查看全文