当前位置:首页 » 安卓系统 » 安卓中如何实现图片轮换

安卓中如何实现图片轮换

发布时间: 2023-05-30 17:27:09

A. 安卓代码中,我有五张图片,设置一个button,如何点击一次button就切换下一张图片

第一种:使用动画的方法实现:(代码繁琐)
这种发放需要:两个动画效果,一个布局,一个主类来实现,不多说了,来看代码吧:
public class IamgeTrActivity extends Activity {
/** Called when the activity is first created. */

public ImageView imageView;
public ImageView imageView2;

public Animation animation1;
public Animation animation2;

public TextView text;

public boolean juage = true;

public int images[] = new int[] { R.drawable.icon, R.drawable.expriment,
R.drawable.changer, R.drawable.dataline, R.drawable.preffitication };

public int count = 0;

public Handler handler = new Handler();

public Runnable runnable = new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
AnimationSet animationSet1 = new AnimationSet(true);
AnimationSet animationSet2 = new AnimationSet(true);
imageView2.setVisibility(0);
TranslateAnimation ta = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
-1f, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f);
ta.setDuration(2000);
animationSet1.addAnimation(ta);
animationSet1.setFillAfter(true);
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
0f, Animation.RELATIVE_TO_SELF, 0f);
ta.setDuration(2000);
animationSet2.addAnimation(ta);
animationSet2.setFillAfter(true);
//iamgeView 出去 imageView2 进来
imageView.startAnimation(animationSet1);
imageView2.startAnimation(animationSet2);
imageView.setBackgroundResource(images[count % 5]);
count++;
imageView2.setBackgroundResource(images[count % 5]);

text.setText(String.valueOf(count));
if (juage)
handler.postDelayed(runnable, 6000);
Log.i(handler, handler);
}
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView) findViewById(R.id.imageView);
imageView2 = (ImageView) findViewById(R.id.imageView2);
text=(TextView)findViewById(R.id.text);
text.setText(String.valueOf(count));
//将iamgeView先隐藏,然后显示
imageView2.setVisibility(4);
handler.postDelayed(runnable, 2000);
}

public void onPause() {
juage = false;
super.onPause();
}
}

布局代码:

android:orientation=vertical
android:layout_width=fill_parent
android:layout_height=fill_parent
android:id=@+id/rl>

android:id=@+id/imageView
android:layout_width=fill_parent
android:background=@drawable/icon
android:layout_below=@+id/rl
android:layout_height=120dp />

android:id=@+id/imageView2
android:layout_width=fill_parent
android:background=@drawable/expriment
android:layout_below=@+id/rl
android:layout_height=120dp />

android:id=@+id/text
android:layout_width=fill_parent
android:layout_height=wrap_content
android:layout_below=@id/imageView/>

第二种:使用ViewFlipper实现图片的轮播

Android系统自带的一个多页面管理控件,它可以实现子界面的自动切换:
首先 需要为ViewFlipper加入View
(1) 静态导入:在layout布局文件中直接导入
(2) 动态导入:addView()方法
ViewPlipper常用方法:
setInAnimation:设置View进入屏幕时候使用的动画
setOutAnimation:设置View退出屏幕时候使用的动画
showNext:调用该函数来显示ViewFlipper里面的下一个View
showPrevious:调用该函数来显示ViewFlipper里面的上一个View
setFlipInterval:设置View之间切换的时间间隔
startFlipping使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping:停止View切换
讲了这么多,那么我们今天要实现的是什么呢?
(1) 利用ViewFlipper实现图片的轮播
(2) 支持手势滑动的ViewFlipper
我们需要先准备几张图片:把图片放进drawable中
创建两个动画:在res下面新建一个folder里面新建两个xml:
left_in:

android:ration=5000
android:fromXDelta=100%p
android:toXDelta=0/>

left_out:

android:fromXDelta=0
android:toXDelta=-100%p
android:ration=5000/>

一个布局文件:
xmlns:tools=http://schemas.android.com/tools
android:layout_width=match_parent
android:layout_height=match_parent
tools:context=.MainActivity >

android:id=@+id/flipper
android:layout_width=fill_parent
android:layout_height=fill_parent/>

一个主类:
public class MainActivity extends Activity {

private ViewFlipper flipper;
private int[] resId = {R.drawable.pc1,R.drawable.pc2,R.drawable.pc3,R.drawable.pc4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

flipper = (ViewFlipper) findViewById(R.id.flipper);

/*
* 动态导入的方式为ViewFlipper加入子View
* */
for (int i = 0; i < resId.length; i++) {
flipper.addView(getImageView(resId[i]));

}
/*
* 为ViewFlipper去添加动画效果
* */
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.setFlipInterval(5000);
flipper.startFlipping();
}
private ImageView getImageView(int resId){
ImageView image = new ImageView(this);
image.setBackgroundResource(resId);
return image;
}

}
那么这样就实现了一个图片轮询的功能效果了
我们还可以添加点击,滑动效果:
我们还需要添加两个向右的滑动效果:
right_in:

android:fromXDelta=0
android:toXDelta=-100%p
android:ration=2000/>

right_out:

android:fromXDelta=100%p
android:toXDelta=0
android:ration=2000/>

然后我们还需要在主类里面添加(如果你不想让图片自动播放,只想通过手势来实现图片播放那么你需要把“为ViewFlipper添加动画效果的代码”删掉):
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
break;
case MotionEvent.ACTION_MOVE://判断向左滑动还是向右滑动
if (event.getX() - startX > 100) {
flipper.setInAnimation(this, R.anim.left_in);
flipper.setOutAnimation(this, R.anim.left_out);
flipper.showPrevious();
}else if (startX - event.getX() > 100) {
flipper.setInAnimation(this, R.anim.right_in);
flipper.setOutAnimation(this, R.anim.right_out);
flipper.showNext();
}

case MotionEvent.ACTION_UP:
break;

}
return super.onTouchEvent(event);
}
这样我们利用我们的ViewFlipper完成的图片轮询的功能就做完了。
午夜神器APP私密即时语音互动聊天,匿名两性情趣秘密分享

B. 华为手机图片库的图片顺序乱了,如何用手机调整

文件夹中选择按照拍摄时间排序,手机拍照一般是默认日期排序,可以在照相机的设置里面找到该设置,调到“日期”即可。要不然就点击一下“恢复照相机、摄像机设置”试试。

C. 拜托快来看,就是这种轮换图片,怎么做.......

其实动画的原理很简单,就是让图片有秩序地轮流显示。
软件下在地址:http://www3.skycn.com/soft/2521.html
利用Firework 制作动画总共有三种方法,由易到难分别为:合并已有图片生成动画,利用Tween Instances生成动画和手工绘制。
一、 合并已有图片生成动画
合并已有图片形成动画,顾名思义就是将一系列图片按顺序排列在不同的帧中从而生成动画,当然,首先我们必须有一串连续的图片,然后,在Fireworks中,选择菜单指令“File/Open Multiple”,这时将弹出“打开”对话框(如图1), 进裂锋入所需图片所在的目录,然后按照动画中图片显示的顺序依次选取图片,并单击“Add”按钮将这三张图片加入到对话框下面的窗口;注意:我们还必须勾选对话框最下面的“Open as Animation”(以动画打开)选项,不然的话,我们打开的将是三张分开的静态图片;最后,单击“Done”(完成)按钮。
图1 以动画打开
单击窗口右下角状态栏的播放按钮,怎么样?效果还不错吧!
现在只是一只海鸥在不停地飞,如果为它再添加一副背景,效果一定会更好,好吧,下面我们就为海鸥添加一副大海的背景。
添加背景的方法有两种:自动复制和共享图层。
1. 自动复制
图2 添加帧
首先,单击“Frames”面板右上角如图2按钮,选择“Add Frames”,在弹出的对话框中选择“Number”为1和“At the end”,单击“ok”按钮。
图3 编辑模式状态
然后将画布的大小改为200x150(Pixels);接下来,打开背景图片,发现图片周围有一个如图3的边框,说明图片处于图像编辑模式,选择“Modify/Exit Image Edit (Ctrl+Shift+D)”,使图片�攵韵蟊嗉�J剑�绻�肴猛计�蚩�弊芪�韵蟊嗉�J剑�颐墙�癋ile/Preferences”的“Editing”面板中“Open in Image Edit Mode”复选框前面的对钩去掉即可。(如图4)
图4 Prefernces对话框
选中新添加的“Frame 4”,将背景图片拷入其中并适当地调整一下背景图片的位置,然后选中图片,单击“Frames”面板右上角如图4按钮,在弹出菜单中选择“Copy to Frames”,进入“Copy to Frames”窗口,选择拷贝范围为:All Frames,单击“ok”按钮 。

图4 拷贝帧
打开“Frames”面板,我们发现前三帧的图片都被背景图片遮住了,单击第一帧,然后选中画布中的图片,执行菜单指令“Modify/Arrange/Send”;或者单击修改工具栏的置后工具(如图5),将背景图片移到动画图片的后面,其它帧同理。
图5 置后工具
最后双击“Frame 4”,将它的时间延迟设置为0(如图6)。

图6 延时设置

至此,背景添加完毕,赶快预览一下动画的效果吧!(如图7)

图7 动画效果图

2. 共享图层

共享图层就是使用“Layers”图层面板,将指定的背景图片设定为共享图层,如此即可在所有的帧中看到该背景。

我们有时可能会误认为每一帧都拥有一个图层,其实不论设定的帧有多少,这些帧都位于同一图层上,此丛只是出现的时间不同罢了。

下面我们就利用此方法为刚才的动画添加一个背景: 首先,将画布的大小改为200x150(Pixels),然后开启“Layers”图层面板,单击“Layers”图层面板右上角如图按钮,选择“New Layer”,在弹出的“New Layer”对话框中,为新层起一个名字,例如:background,钩选“Share Across Frames”复选框,单击“ok”按钮,“background”图层就成了共享图层,(如图8)左键按住“background”图层,将它拖到“Layer 1”图层下面;然后打开背景图片,单击“矩形选择工具” ,选择我们需要的背景,将其拷到“background”图层的画布中,并适当地调整一下背景的位置。好了,一切ok!

二、 利用Tween Instances生成动画

利用Tween Instances生成动肆扒晌画是Firework 3十分强大的功能之一,它的原理是将图片转化为元件(symbol),然后,确定元件的初始和结束分身(instance),再利用Tween Instances将这些分身转换为具有过渡效果的连续帧(frame)。

Tween Instances功能支持元件的位移、旋转、缩放、扭曲、倾斜以及不透明度的过渡。

具体的动画制作过程我们可以参见第一章的第四节,这里就不再重复。

三、 手工绘制

如果我们要手工绘制动画,就需要用到Firework 3的洋葱皮功能(Onion Skinning),它就象我们制作卡通用的半透明纸一样,在编辑当前帧的同时,可以看到此前或此后帧中的内容,这样,我们在手绘动画时就可以方便地绘制图案。

下面我们就来认识一下洋葱皮功能,开启“Frames”面板,单击“洋葱皮功能”按钮(如图9),弹出菜单中选项分别为:

· No Onion Skinning: 关闭洋葱皮功能;

· Show Next Frame: 在当前帧中显示下一帧的内容;

· Before and After: 在当前帧中显示前一帧和下一帧的内容;
· Show All Frames: 在当前帧中显示所有帧中的内容;
· Custom: 可以设置洋葱皮的显示功能;
· Multi-Frame Editing: 可以透过洋葱皮编辑其他帧中的内容。
图9 洋葱皮功能菜单
空说无用,打开我们先前制作的“海鸥”动画,然后选中Show All Frames,我们不仅可以看到当前帧的海鸥,还可以看到其他两帧中海鸥的淡化效果(如图10);Firework 3的洋葱皮功能十分强大,而且方便高效,我们可以在以后的手工绘制动画中慢慢地体会。

最后关键的步骤就是"文件"--导出(或者导出向导最好) --选择GIF动画 里边其他东西自己琢磨 不会了 可以QQ:22394781

D. 安卓开发,我在listview里嵌套了一个viewpager实现图片轮播的效果,

listview里嵌套慧兆了一个viewpager实现汪碧明图片轮播, 这本身就困告是一个有问题的嵌套, 为什么要这样布局呢, 图片轮播的控件一搜一大堆都是开源的, 使用又超级超级的简单.

E. 安卓电视图片轮播软件

安卓电视是可以安装知了知屏软件的,里面有非常多的功能,除了可以图片轮播外,还可以实现视频、文档的轮播。

热点内容
odbcforsqlserver 发布:2025-02-10 22:26:37 浏览:599
区块链数据存储在那里 发布:2025-02-10 22:25:48 浏览:688
c语言for死循环 发布:2025-02-10 22:24:08 浏览:522
苹果限制访问初始密码 发布:2025-02-10 22:21:31 浏览:758
为什么安卓手机一年后卡顿 发布:2025-02-10 22:15:39 浏览:731
职工信息管理系统设计c语言 发布:2025-02-10 22:15:30 浏览:118
预算法的理念 发布:2025-02-10 22:15:25 浏览:132
如何结合商圈顾客特点配置货品 发布:2025-02-10 22:10:59 浏览:593
纸币如何配置财富 发布:2025-02-10 22:00:57 浏览:706
数据库中存放的是视图的 发布:2025-02-10 21:57:46 浏览:628