求图。。。。求三张图片,是三张黑底上面只有一个3D求小白文人从跑步状态到跳跃在到翻转的三张图

Android开发:Parallax效果的ScrollerView,改编自ParallaxListView
最近在项目中,有用到一个仿照Path的Parallax效果,苦苦搜寻,在github上面,有一个类似的效果,不过是listview的,加一个顶部的headerView,实现了该效果,不过我需要的是ScrollerView的,于是对该代码进行的修改,实现了ScrollerView下面的Parallax效果,效果图参照如下:
在阅读下面代码前,可以先查看下Github上面的
我对于原先的代码进行了大量的删减,只实现了我需要的效果,看起来简单易懂,最怕那种绕来绕去的代码了,看核心的实现代码:
public class ParallaxScollView extends ScrollView implements OnScrollListener {
public final static double NO_ZOOM = 1;
public final static double ZOOM_X2 = 2;
private ImageView mImageV
private int mImageViewHeight = -1;
private int mDefaultImageViewHeight = 0;
private int originImageViewH
private int mMaxH
private interface OnOverScrollByListener {
public boolean overScrollBy(int deltaX, int deltaY, int scrollX,
int scrollY, int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent);
private interface OnTouchEventListener {
public void onTouchEvent(MotionEvent ev);
public ParallaxScollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
init(context);
public ParallaxScollView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
public ParallaxScollView(Context context) {
super(context);
init(context);
public void init(Context context) {
mDefaultImageViewHeight = context.getResources().getDimensionPixelSize(R.dimen.size_default_height);
originImageViewHeight = context.getResources().getDimensionPixelSize(R.dimen.size_default_height);
public void onScrollStateChanged(AbsListView view, int scrollState) {
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,
int scrollY, int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
boolean isCollapseAnimation =
isCollapseAnimation = scrollByListener.overScrollBy(deltaX, deltaY,
scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX,
maxOverScrollY, isTouchEvent)
|| isCollapseA
/*return isCollapseAnimation ? true : super.overScrollBy(deltaX, deltaY,
scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX,
0, isTouchEvent);*/
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
View firstView = (View) mImageView.getParent();
// firstView.getTop & getPaddingTop means mImageView will be covered by top padding,
// so we can layout it to make it shorter
if (firstView.getTop() & getPaddingTop() && mImageView.getHeight() & mImageViewHeight) {
mImageView.getLayoutParams().height = Math.max(mImageView.getHeight() - (getPaddingTop() - firstView.getTop()), mImageViewHeight);
// to set the firstView.mTop to 0,
// maybe use View.setTop() is more easy, but it just support from
3.0 (API 11)
firstView.layout(firstView.getLeft(), 0, firstView.getRight(), firstView.getHeight());
mImageView.requestLayout();
public boolean onTouchEvent(MotionEvent ev) {
touchListener.onTouchEvent(ev);
return super.onTouchEvent(ev);
public void setParallaxImageView(ImageView iv) {
mImageView =
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
public void setViewsBounds(double zoomRatio) {
if (mImageViewHeight == -1) {
mImageViewHeight = mImageView.getHeight();
if (mImageViewHeight &= 0) {
mImageViewHeight = mDefaultImageViewH
double ratio = ((double) mImageView.getDrawable().getIntrinsicWidth()) / ((double) mImageView.getWidth());
private OnOverScrollByListener scrollByListener = new OnOverScrollByListener() {
public boolean overScrollBy(int deltaX, int deltaY, int scrollX,
int scrollY, int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
if (isTouchEvent) {
if (true) {
mImageView.getLayoutParams().height = mImageView.getHeight() - deltaY / 2;
mImageView.requestLayout();
private OnTouchEventListener touchListener = new OnTouchEventListener() {
public void onTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_UP) {
if (mImageViewHeight - 1 & mImageView.getHeight()) {
ResetAnimimation animation = new ResetAnimimation(
mImageView, mImageViewHeight);
animation.setDuration(300);
mImageView.startAnimation(animation);
public class ResetAnimimation extends Animation {
int targetH
int originalH
int extraH
protected ResetAnimimation(View view, int targetHeight) {
this.mView =
this.targetHeight = targetH
originalHeight = view.getHeight();
extraHeight = this.originalHeight - originImageViewH
Log.i(debug, target heitht
+ targetHeight +
original height
+ originalHeight
extraheight
+ extraHeight);
protected void applyTransformation(float interpolatedTime, Transformation t) {
newHeight = (int) (originImageViewHeight + extraHeight * (1 - interpolatedTime));
mView.getLayoutParams().height = newH
mView.requestLayout();
第二布:在xml中,引用该ParallaxScollView:
最后一步,在activity中,引用ParallaxScrollerView,并且设置imageview:
mImageView = (ImageView) findViewById(R.id.headview);
scrollView = (ParallaxScollView) findViewById(R.id.parallax_scroll_view);
scrollView.setParallaxImageView(mImageView);
大功告成,也可以在ScrollerView上实现炫酷的Parallax效果了
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'把几张JPG图片拼成一张3D立体图,有什么软件可以做出来?本人小白,希望是中文版简单好用的,求大神_百度知道
把几张JPG图片拼成一张3D立体图,有什么软件可以做出来?本人小白,希望是中文版简单好用的,求大神
求大神推荐和教学,希望是中文版简单好用的?本人小白,有什么软件可以做出来把几张JPG图片拼成一张3D立体图
提问者采纳
缺点不能旋转各个角度成图可以用3dmax建模,缺点技术难度相对较高,图片附在墙面然后渲染,你必须在脑海里先构好图形,也可以ps
提问者评价
太给力了,你的回答完美的解决了我的问题!
其他类似问题
为您推荐:
3d立体图的相关知识
其他2条回答
看看照片先
PS得怎么做啊
这个我还真不知道怎么教,也没电脑,不然可以给你弄,你百度看看PS的这方面的教程吧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁国内首家 Photoshop CS2视频教程-ps,photoshop,视频,教程,下载-eNet网络学院
|| | | | |
| | |   |
  Photoshop CS2是Photoshop最新版本,也是目前图像处理功能最强大的软件之一。在教程安排上注重由浅入深,循序渐进。通过本教程的学习,不仅可以掌握Photoshop的一般操作,同时更能了解,该如何把学习过的知识应用于实际工作。
第一章:快速入门
第二章:操作界面
第三章:工具箱工具详细说明
第四章:调整颜色及色相色阶
第五章:选择区域及应用
第六章:使用图层及图层应用
第七章:文字处理
第八章:滤镜使用与制作WEB图像
第九章:实例文字处理
第十章:实例图像处理
第十一章:实例操作技巧
热门关键字:
网站合作、内容监督、商务咨询:010-
Copyright &
硅谷动力公司版权所有
未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.【声明】本网站部分内容属论坛网友发布,本网站仅提供网友交流平台,但有权在本网站范围内引用、发布、转载来自论坛网友发布的内容。网友发布内容纯属个人行为,与本网站立场无关。本网站对于论坛网友发布的内容所引发的版权、署名权的异议及纠纷,不承担任何责任。其他媒体转载须事先与原作者和本网站联系。
京ICP证000088号程序员求职专题:求职季,求职技
JOIN US,下一个大牛就是你!
APP动效设计的点睛之美
表有方寸,心无桎梏
零基础学习Cocos2d-x
其它 | 3年 | iOS开发工程师
上海市 | 3年 | iOS开发工程师
其它 | 5年及以上 | iOS开发工程师
其它 | 1年 | iOS开发工程师
杭州市 | 2年 | iOS开发工程师
北京 | 三年 | 本科
成都 | 三年 | 大专
北京 | 三年 | 本科
北京 | 三年 | 本科
北京 | 三年 | 本科
社区排行榜
一周最火文章排行榜
一周论坛热帖排行榜
一周热门代码下载排行榜
&2016 Chukong Technologies,Inc.
京公网安备89}

我要回帖

更多关于 小小白 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信