android图片循环
1. android怎么viewpager实现循环切换图片
Android中的ViewPager则实现了左右滑动的效果,ViewPager类提供了多界面切换的新效果。利用ViewPager实现图片循环滚动代码如下:
1、首先是布局文件,使用了一个ViewPager控件:
java"><spanstyle="padding:0px;margin:0px;font-size:14px;"><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/viewpager"
android:background="#33000000"
android:orientation="vertical"
android:padding="5dip">
<TextView
android:id="@+id/tv_image_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="第一个引导页面"
android:textColor="@android:color/white"
android:textSize="14sp"/>
<LinearLayout
android:id="@+id/ll_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
</RelativeLayout></span>
2、接下来实现一个继承PagerAdapter的MyAdapter类,实现一个PagerAdapter,代码如下:
<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.List;
importandroid.support.v4.view.PagerAdapter;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
{
privateList<ImageView>mImageViewList;
publicViewPagerAdapter(List<ImageView>imageViewList){
super();
this.mImageViewList=imageViewList;
}
/**
*该方法将返回所包含的Item总个数。为了实现一种循环滚动的效果,返回了基本整型的最大值,这样就会创建很多的Item,
*其实这并非是真正的无限循环。
*/
@Override
publicintgetCount(){
returnInteger.MAX_VALUE;
}
/**
*判断出去的view是否等于进来的view如果为true直接复用
*/
@Override
publicbooleanisViewFromObject(Viewarg0,Objectarg1){
returnarg0==arg1;
}
/**
*销毁预加载以外的view对象,会把需要销毁的对象的索引位置传进来,就是position,
*因为mImageViewList只有五条数据,而position将会取到很大的值,
*所以使用取余数的方法来获取每一条数据项。
*/
@Override
publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){
container.removeView(mImageViewList.get(position%mImageViewList.size()));
}
/**
*创建一个view,
*/
@Override
publicObjectinstantiateItem(ViewGroupcontainer,intposition){
container.addView(mImageViewList.get(position%mImageViewList.size()));
returnmImageViewList.get(position%mImageViewList.size());
}
}
</span>
3、最后是主界面部分的代码:
<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.ArrayList;
importjava.util.List;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.os.SystemClock;
importandroid.support.v4.view.ViewPager;
importandroid.support.v4.view.ViewPager.OnPageChangeListener;
importandroid.view.View;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.LinearLayout.LayoutParams;
importandroid.widget.TextView;
{
privateList<ImageView>imageViewList;
privateTextViewtvDescription;
privateLinearLayoutllPoints;
privateString[]imageDescriptions;
=0;
privateViewPagermViewPager;
privatebooleanisLoop=true;
privateHandlerhandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);
mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1);
}
};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setView();
initView();
}
publicvoidsetView(){
setContentView(R.layout.activity_splash_viewpager);
//自动切换页面功能
newThread(newRunnable(){
@Override
publicvoidrun(){
while(isLoop){
SystemClock.sleep(2000);
handler.sendEmptyMessage(0);
}
}
}).start();
}
publicvoidinitView(){
mViewPager=(ViewPager)findViewById(R.id.viewpager);
tvDescription=(TextView)findViewById(R.id.tv_image_description);
llPoints=(LinearLayout)findViewById(R.id.ll_points);
prepareData();
ViewPagerAdapteradapter=newViewPagerAdapter(imageViewList);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(this);
tvDescription.setText(imageDescriptions[previousSelectPosition]);
llPoints.getChildAt(previousSelectPosition).setEnabled(true);
/**
*2147483647/2=1073741820-1
*设置ViewPager的当前项为一个比较大的数,以便一开始就可以左右循环滑动
*/
intn=Integer.MAX_VALUE/2%imageViewList.size();
intitemPosition=Integer.MAX_VALUE/2-n;
mViewPager.setCurrentItem(itemPosition);
}
privatevoidprepareData(){
imageViewList=newArrayList<ImageView>();
int[]imageResIDs=getImageResIDs();
imageDescriptions=getImageDescription();
ImageViewiv;
Viewview;
for(inti=0;i<imageResIDs.length;i++){
iv=newImageView(this);
iv.setBackgroundResource(imageResIDs[i]);
imageViewList.add(iv);
//添加点view对象
view=newView(this);
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.point_background));
LayoutParamslp=newLayoutParams(5,5);
lp.leftMargin=10;
view.setLayoutParams(lp);
view.setEnabled(false);
llPoints.addView(view);
}
}
privateint[]getImageResIDs(){
returnnewint[]{
R.drawable.bg1,
R.drawable.bg2,
R.drawable.bg3,
R.drawable.pic_01,
R.drawable.pic_02
};
}
privateString[]getImageDescription(){
returnnewString[]{
"第一个引导页面",
"第二个引导页面",
"第三个引导页面",
"第四个引导页面",
"第五个引导页面"
};
}
@Override
(intarg0){
}
@Override
publicvoidonPageScrolled(intarg0,floatarg1,intarg2){
}
@Override
publicvoidonPageSelected(intposition){
//改变图片的描述信息
tvDescription.setText(imageDescriptions[position%imageViewList.size()]);
//切换选中的点,把前一个点置为normal状态
llPoints.getChildAt(previousSelectPosition).setEnabled(false);
//把当前选中的position对应的点置为enabled状态
llPoints.getChildAt(position%imageViewList.size()).setEnabled(true);
previousSelectPosition=position%imageViewList.size();
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
isLoop=false;
}
}
</span>
2. 在android中怎样用双缓冲机制实现背景图片的循环移动
不断的重绘z这一zhang张背景图.X的坐标不断减去一个偏移量 如果背景的x坐标小于0的时候在dang'qian当前背景的weightde的地方绘制新de的背景 ha还是原来的bei'ji背景.新bei'j背景的X坐标为原背景的kua宽度
3. Android自定义View-一张背景图片移动
一张背景图从右到左缓慢移动,无限循环!
1.先把图片读取出来修改尺寸(以屏幕高度为标准缩放图片大小)。
2.设置属性动画ValueAnimator.ofInt(0, mBitmapW) //mBitmapW是图片修改过后宽度。
3.通过mValue裁减图片进行绘制。
4. android中怎么让轮播图无限循环
比如有三张图要轮询
一般的做法是先创建一个适配器,getCount返回int最大值。
activity中声明一个变量i来记录当前应该显示第几张。一般初始化为int最大值/2就好。
然后再onResume中来启动线程。用来执行一个while来无限循环。停留两秒钟i+1然后更新viewpager。调用viewpager.setCurrentItem(i) 方法来设置.
这时候会调用PagerAdapter的instantiateItem方法。position%3 也就是i%总共几张图。就是要显示的图片。
5. android循环播放图片的时间间隔设置问题
android:ration="60000"这个就是时间间隔,每张图片的停留时间。60000是个很长的时间了,说不上非常快速。不知道你是不是想说,4张图片播放完了后,再播放一遍的间隔时间?还是每张图片的播放间隔时间?
6. 在android开发中如何实现多张图片的循环显示
loading.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:ration="150" android:drawable="@drawable/loading_01" />
<item android:ration="150" android:drawable="@drawable/loading_02" />型伍枝
<item android:ration="150" android:drawable="@drawable/loading_03" />
<item android:ration="橘族150" android:drawable="@drawable/loading_04" />
<item android:ration="150"卜敏 android:drawable="@drawable/loading_05" />
<item android:ration="150" android:drawable="@drawable/loading_06" />
<item android:ration="150" android:drawable="@drawable/loading_07" />
</animation-list>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="false"
android:indeterminateDrawable="@anim/loading" />
7. android怎么用viewpager实现轮播图循环
这里要补充一下,在这个项目中我把图片轮播写进了一个Viewholder里内嵌在了Recyclelistview里。但本文只介绍图片轮播部分的实现:
整体思路:使用handler的延时发送方法(sendEmptyMessageDelayed)实现在adapter中控制Viewpager图片轮播
具体实现分为三个部分:
http://blog.csdn.net/qq_22770457/article/details/51198688
8. android的自带图库怎样实现循环播放图片
可以啊,幻灯片模式下,你可以程序判断是否到最后一张,然后设置它下一张播放的index的
9. android 怎么实现图片循环显示
你可以判断一下,如果是第一张,右划加载最后一张,如果是最后一张,左划加载第一张
首尾衔接的方法和上面一样,只是此时gallery适配的adapter的getCount要设成一个比较大的数,然后加载的时候从中李卖间开始,给人的感觉像是在循环,其实不是在真正的循环,因为如果你一直向一个方向滑滚扰拍动,终有终止的时候。目前我没有找到更好的gallery循环。大羡
10. 在Android里怎么让一张png图片循环旋转,就像雷达里面那个,不停地旋转,可以有按钮控制开关的
使用皮岁android中的野握漏旋转动画,让imageview以自身为中心旋转,在写个Button控颂烂制动画的开始结束
可参考:http://blog.csdn.net/feng88724/article/details/6318430