导航:首页 > 操作系统 > android图片滑动效果

android图片滑动效果

发布时间:2022-05-15 21:22:35

android GridView 点击 进入图片左右滑动 求个方法

全屏浏览可以用ImageView的setImageResource,全屏的属性在manifest的activity上设置,
左右滑动使用Gallery拖动效果,创建一个int数组存放图片的id,继承Adapyer重写getView方法,网上有代码的,我的代码都被加密了,公司电脑

❷ 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>

❸ android 实现如图片这样的左右滑动,中间item的左边的item出来一点。中间的Item的右边的item出来一点,

我也觉得是用Gallery,设置每个Item的大小 以及间距,可以实现这种效果

❹ android怎么实现 图片滑动,并且底部小圆点随之无限滑动

什么叫无限滑动。。。你的意思是有几张图片就自动有几个暗色的点滑一张图亮色的点就位移一下么


如果你是这个意思的话

首先滑动图片用viewpager 所有图片id或者url都放到数组里

guesterIds=newint[]{R.drawable.guester,R.drawable.guester1,
R.drawable.guester3,R.drawable.guester4,R.drawable.guester5};


在初始化的时候分别初始化这些图片和原点


下面这个代码是初始化图片生成imageview然后装到viewpager的adpater里面

(intid){
ImageViewiv=newImageView(this);
ImageLoader.getInstance().displayImage("drawable://"+id,iv,options);
//iv.setImageResource(id);
ViewGroup.LayoutParamsparams=newViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
iv.setLayoutParams(params);
iv.setScaleType(ScaleType.FIT_CENTER);
returniv;
}



下面这个代码是动态生成一个布局里面里面是圆点

dotView=newImageView(this);
dotView.setImageResource(R.drawable.dot2_w);

LinearLayout.LayoutParamslayoutParams=newLinearLayout.LayoutParams(Util.dip2px(mContext,20),
Util.dip2px(mContext,10),1.0f);
dotView.setLayoutParams(layoutParams);
dotView.setScaleType(ScaleType.FIT_CENTER);
dotContain.addView(dotView);


然后再每次滑动图片的时候都从viewpager的监听中移动小圆点

pager.setOnPageChangeListener(newViewPager.SimpleOnPageChangeListener(){
@Override
publicvoidonPageSelected(intposition){

intpos=position%guesterIds.length;
moveCursorTo(pos);
curPos=pos;
super.onPageSelected(position);
}
});


移动小圆点的方法其实就是以一个translation的动画

privatevoidmoveCursorTo(intposition){
AnimationSetanimationSet=newAnimationSet(true);
TranslateAnimationtAnim=
newTranslateAnimation(offset*curPos,offset*position,0,0);
animationSet.addAnimation(tAnim);
animationSet.setDuration(300);
animationSet.setFillAfter(true);
curDot.startAnimation(animationSet);
}


希望能启发你的思路

❺ android 显示一行图片且可以左右滑动

这个使用水平滚动条,里面嵌套gridview能够完美实现,网上应该有开源工程,你可以查一下

❻ 安卓手机如何设置滑动桌面图标动壁纸也会动

桌面设置里面勾选上“壁纸跟随滚动”即可实现你想要的效果,如果在桌面设置里找不到该选项,说明你目前使用的壁纸不支持这个效果

❼ android应用模仿android桌面效果,就是拖动页面时背景图片随之滚动,但是滚动的幅度比页面拖动的幅度小。

桌面(Launcher)移动时背景随着缓动是通过设置WallpaperManager相应状态实现的。如果你想在自己的应用中实现类似效果,可以模仿壁纸的实现方式。大致思路:
1.确定好缓动图片大小,大于实际显示宽度(Launcher中竖屏时通常是屏幕宽度的2倍)
2. 应用多个页面滑动的过程中,根据页面个数,当前滑动的位置等计算好对应的比例,结合背景缓动图片的大小实时更新背景缓动的距离。

❽ 在android平台上怎么实现像图片的浏览 左右滑动切换图片,然后底部是圆点显示当前是哪一个图片

安卓5.0自带左右滑动切换图片的功能

一、依次点 应用程序---相册

❾ Android实现图库功能,查看本应用drawable下的所有图片,且能左右滑动切换上一页或下一页图片

使用ImageLoader
源码地址
https://github.com/nostra13/Android-Universal-Image-Loader
可以通过这个框架来加载以下类型的图片
"http://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)

官网有例子,使用非常简单,一行代码搞定

❿ Android ViewPager滑动控制多张图片动画效果怎么实现

重新viewpager OnPageChangeListener接口onPageScrolled 实现方法 ,/* 当前页滚动时调用,无论是程序控制的平滑滚动还是用户发起的触摸滚动。 * arg0:第一个页面当前显示的位置索引。如果页面偏移不是0,下一个页面将会可见。 * arg1:表示第二个页面位置偏移量的比例值,[0, 1)。(右侧页面所占屏幕百分比) * arg2:表示第二个页面位置偏移量的像素值。(右侧页面距右边的像素值) */ public void onPageScrolled(int arg0, float arg1, int arg2) 动画的话 用TranslateAnimation 动画 查看更多答案>>

阅读全文

与android图片滑动效果相关的资料

热点内容
时政新闻app哪个好 浏览:904
手机已加密怎么办 浏览:199
安卓手机截屏怎么传到苹果 浏览:525
京管家app哪里下载 浏览:33
文件夹横向排列的竖向排列 浏览:451
51单片机驱动摄像头模块 浏览:689
政府文件加密没法转换 浏览:373
android判断栈顶 浏览:331
凭证软件源码 浏览:860
androidwebview滚动事件 浏览:11
如何将电脑上的图片压缩成文件包 浏览:899
程序员转金融IT 浏览:837
黑马程序员培训效果如何 浏览:913
本地集成编译 浏览:528
韩国电影哪个app可以看 浏览:703
玖月授权什么app什么梗 浏览:785
怎么使用服务器上的ip地址是什么情况 浏览:752
手机密码加密后怎么解密 浏览:343
华为云的服务器的ip地址怎么访问不 浏览:367
webstormvue在线实时编译生效 浏览:184