- 浏览: 5819683 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Rect; import android.util.AttributeSet; import android.view.View; import static java.lang.Math.abs; import static java.lang.Math.floor; /** * Created by thijs on 08-06-15. */ public class ScrollingImageView extends View { private final int speed; private final Bitmap bitmap; private Rect clipBounds = new Rect(); private int offset = 0; private boolean isStarted; public ScrollingImageView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.ParallaxView, 0, 0); try { speed = ta.getDimensionPixelSize(R.styleable.ParallaxView_speed, 10); bitmap = BitmapFactory.decodeResource(getResources(), ta.getResourceId(R.styleable.ParallaxView_src, 0)); } finally { ta.recycle(); } start(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), bitmap.getHeight()); } @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); if (canvas == null) { return; } canvas.getClipBounds(clipBounds); int normalizedOffset = offset; int layerWidth = bitmap.getWidth(); if (offset < -layerWidth) { offset += (int) (floor(abs(normalizedOffset) / (float) layerWidth) * layerWidth); } int left = offset; while (left < clipBounds.width()) { canvas.drawBitmap(bitmap, getBitmapLeft(layerWidth, left), 0, null); left += layerWidth; } if (isStarted) { offset -= speed; postInvalidateOnAnimation(); } } private float getBitmapLeft(int layerWidth, int left) { float bitmapLeft = left; if (speed < 0) { bitmapLeft = clipBounds.width() - layerWidth - left; } return bitmapLeft; } /** * Start the animation */ public void start() { if (!isStarted) { isStarted = true; postInvalidateOnAnimation(); } } /** * Stop the animation */ public void stop() { if (isStarted) { isStarted = false; invalidate(); } } }
attr.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="ParallaxView"> <attr name="speed" format="dimension" /> <attr name="src" format="reference" /> </declare-styleable> </resources>
usage:
<com.....ScrollingImageView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/scrolling_background" android:layout_width="match_parent" android:layout_height="wrap_content" app:speed="1dp" app:src="@drawable/scrolling_background" />
ScrollingImageView scrollingBackground = (ScrollingImageView) loader.findViewById(R.id.scrolling_background); scrollingBackground.stop(); scrollingBackground.start();
Parallax effect:
只要设置不同的滚动背景速率就可以达到视差效果
<FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <com......ScrollingImageView android:id="@+id/scrolling_background" android:layout_width="match_parent" android:layout_height="wrap_content" app:speed="1dp" app:src="@drawable/scrolling_background" /> <com.....ScrollingImageView android:id="@+id/scrolling_foreground" android:layout_width="match_parent" android:layout_height="wrap_content" app:speed="2.5dp" app:src="@drawable/scrolling_foreground" /> </FrameLayout>
发表评论
-
NestedScrollView滚动到顶部固定子View悬停挂靠粘在顶端
2018-10-31 20:45 6993网上有一个StickyScrollView,称之为粘性Scro ... -
自定义Behavior实现AppBarLayout越界弹性效果
2017-03-31 09:33 10369一、继承AppBarLayout.Beha ... -
Android - 一种相似图片搜索算法的实现
2017-03-31 09:33 2622算法 缩小尺寸。 将图片缩小到8x8的尺寸,总共64个 ... -
使用SpringAnimation实现带下拉弹簧动画的 ScrollView
2017-03-30 11:30 2848在刚推出的 Support Library 25.3.0 里面 ... -
Android为应用添加角标(Badge)
2017-03-30 11:21 61751.需求简介 角标是什么意思呢? 看下图即可明了: 可 ... -
Android端与笔记本利用局域网进行FTP通信
2017-03-23 10:17 978先看图 打开前: 打开后: Activity类 ... -
PorterDuffColorFilter 在项目中的基本使用
2017-03-03 10:58 1354有时候标题栏会浮在内容之上,而内容会有颜色的变化,这时候就要求 ... -
ColorAnimationView 实现了滑动Viewpager 时背景色动态变化的过渡效果
2017-02-24 09:41 2220用法在注释中: import android.anima ... -
迷你轻量级全方向完美滑动处理侧滑控件SlideLayout
2017-01-16 16:53 2594纯手工超级迷你轻量级全方向完美滑动处理侧滑控件(比官方 sup ... -
Effect
2017-01-05 09:57 0https://github.com/JetradarMobi ... -
动态主题库Colorful,容易地改变App的配色方案
2016-12-27 14:49 2565Colorful是一个动态主题库,允许您很容易地改变App的配 ... -
对视图的对角线切割DiagonalView
2016-12-27 14:23 1118提供对视图的对角线切割,具有很好的用户定制 基本用法 ... -
仿淘宝京东拖拽商品详情页上下滚动黏滞效果
2016-12-26 16:53 3494比较常用的效果,有现成的,如此甚好!:) import ... -
让任意view具有滑动效果的SlideUp
2016-12-26 09:26 1707基本的类,只有一个: import android.a ... -
AdvancedWebView
2016-12-21 09:44 16https://github.com/delight-im/A ... -
可设置圆角背景边框的按钮, 通过调节色彩明度自动计算按下(pressed)状态颜色
2016-11-02 22:13 1920可设置圆角背景边框的的按钮, 通过调节色彩明度自动计算按下(p ... -
网络请求库相关
2016-10-09 09:35 62https://github.com/amitshekhari ... -
ASimpleCache一个简单的缓存框架
2015-10-26 22:53 2178ASimpleCache 是一个为android制定的 轻量级 ... -
使用ViewDragHelper实现的DragLayout开门效果
2015-10-23 10:55 3415先看一下图,有个直观的了解,向下拖动handle就“开门了”: ... -
保证图片长宽比的同时拉伸图片ImageView
2015-10-16 15:40 3733按比例放大图片,不拉伸失真 import android. ...
相关推荐
在Android开发中,为ImageView添加视差效果以及各种转换效果是一种增强用户体验的流行技术。视差效果是指背景图像相对于前景元素以不同的速度移动,这种视觉错觉在滚动时能为用户带来深度感和动态感。在滚动的...
on android ImageView when it's being vertically or horizontally scrolled (moving) on the screen. I wrote an article explaining how this works and implemented, please check it out ...
ScrollParallaxImageView extends ImageView, and provides parallax effects when it scrolls in the screen.It can be use in any view which can scroll its content, like ListView, RecyclerView, ScrollView, ...
2. **布局设计**:在item的布局文件中,我们可以将背景图片设置为一个固定大小的ImageView,而前景图片则可以设置为可滚动的ImageView。通过这种方式,当ListView滚动时,背景图片的移动速度会比前景图片慢,从而...
头部视差效果通常会用到一个比实际高度更大的ImageView或者其他视图,当ListView向上滚动时,这个视图会以较慢的速度逐渐露出。同样,底部视差效果也可以通过类似的方式实现,只是方向相反。 ```xml <!-- header....
视差滚动通常涉及到多个层级的布局,例如一个背景ImageView和一个可滚动的RecyclerView或ScrollView。 在本压缩包文件"利用Android实现discrollview视差滚动.rar"中,可能包含了一个自定义的`DiscrollView`类,这个...
Android视差图像视图 当它在屏幕上垂直或水平滚动(移动)时,在android ImageView上创建诸如垂直视差,水平视差等效果。 参考: 截屏设置步骤1将存储库添加到根build.gradle allprojects { repositories { .. . ...
总之,"swift-一个轻量级的iOS 3D线性旋转视差效果" 是Swift开发中的一种高级技巧,通过巧妙地使用Core Animation和自定义视图组件,可以在iOS应用中创造出引人入胜的3D视差滚动体验。对于希望提升应用视觉效果的...
在描述中提到的“放在imageView上滚动的图片”,这可能是指将图片作为背景放置在一个可滚动视图(如`UIScrollView`)内,然后通过调整图片的滚动速度来实现视差效果。在实际操作中,可以创建一个`UIImageView`作为...
AKParallax-Android是由开发者创建的一个库项目,其主要目的是为Android应用中的滚动视图(ScrollView)或列表视图(ListView)添加视差滚动效果。通过这个库,开发者可以轻松地为ImageView添加视差动画,使图片在...
1. **创建视差背景**:首先,你需要一个背景元素,它可以是ImageView、ViewGroup或者其他自定义视图。这个元素的大小应超出ListView的可见区域,以便在滚动时有足够空间进行移动。 2. **监听ListView滚动**:在...
在Android开发中,微信朋友圈视差特效是一种常见的高级UI设计,它可以为用户带来更丰富的视觉体验。这种特效通常应用于滚动视图,特别是顶部大图,当用户上下滑动时,图片会产生一种深度感,仿佛背景图像相对于前景...
开发者可以将各种视图(如TextView、ImageView等)放入ScrollView,以实现可滚动的界面。 2. **视差效果**:视差是指当观察者移动时,远处和近处的物体移动速度不同,这种现象在3D图形和动画中被广泛应用。在头部...
因此,我们需要创建一个继承自LinearLayoutManager或GridLayoutManager的自定义布局管理器,重写其`onScrolled()`方法,根据滚动距离调整每个item的视差效果。 2. **自定义动画效果**:对RecyclerView的...
此外,还可以通过`RecyclerView`的`ItemDecoration`类来自定义滚动中的视差效果,使得每个item在滚动时有不同的移动速度。 **侧滑删除** 侧滑删除通常用于列表或网格视图中,用户可以通过向左或向右滑动条目来触发...
在Android开发中,视差效果是一种...通过以上步骤,你就可以为你的Android应用增添一种引人入胜的视差滚动效果,提升用户体验。记住,良好的动画效果是提高用户满意度的关键因素之一,因此花时间优化这些细节是值得的。
这个效果在Google+应用中被广泛使用,其核心是通过滚动视差(Parallax Scrolling)来实现背景图片随用户手指滑动而缓慢滚动,从而营造出深度感和层次感。以下将详细解析这一功能的实现原理及步骤。 首先,我们需要...
ScrollerView是Android中一种自定义视图组件,它允许开发者实现滚动时元素以不同速度移动的效果,就像视差滚动。这种效果在很多应用的头部或者背景中常见,比如滚动时背景图片缓慢移动,而前景内容快速移动,从而...
在Android开发中,实现下拉视差特效是一种常见的交互设计,它可以提升用户体验,让用户感受到更生动、丰富的界面动态效果。视差滚动通常在列表视图(ListView)或滚动视图(ScrollView)中应用,当用户下拉时,背景...