我该怎么做?如何在AndroID中实现这一目标?
是否有任何有效的方法来创建2-3层视差背景? AndroID API中是否有一些工具或类?
或者我可能需要在代码中“手动”修改背景图像位置或边距?
我正在使用API级别19.
我试图理解ParalloID库,但是这个太大了,无法解释.我是AndroID和Java的新手,我不熟悉所有Layouts和其他UI对象,但我熟悉MVC.
我开始赏金,也许有人可以一步一步解释这个图书馆是如何运作的.
解决方法 这是你可以做的:在您的活动/片段布局文件中,指定2个ScrollVIEw(例如background_sv和content_sv).
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns: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" > <com.example.parallax.MyScrollVIEw androID:ID="@+ID/background_sv" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" > <ImageVIEw androID:ID="@+ID/parallax_bg" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:background="..." /> </com.example.parallax.MyScrollVIEw> <com.example.parallax.MyScrollVIEw androID:ID="@+ID/content_sv" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" > <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:orIEntation="vertical" > </linearLayout> </com.example.parallax.MyScrollVIEw></relativeLayout>
在背景高度的内容滚动视图中添加虚拟视图并使其透明.现在,将滚动侦听器附加到content_sv.滚动内容滚动视图时,请调用
mBgScrollVIEw.scrollTo(0,(int)(y /*scroll Of content_sv*/ / 2f));
现有的API不支持获取滚动事件.
因此,我们需要创建一个Custom ScrollVIEw来提供ScrollVIEwListener.
package com.example.parallax;// imports;public class MyScrollVIEw extends ScrollVIEw { public interface ScrollVIEwListener { voID onScrollChanged(MyScrollVIEw scrollVIEw,int x,int y,int oldx,int oldy); } private ScrollVIEwListener scrollVIEwListener = null; public MyScrollVIEw(Context context) { super(context); } public MyScrollVIEw(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); } public MyScrollVIEw(Context context,AttributeSet attrs) { super(context,attrs); } public voID setScrollVIEwListener(ScrollVIEwListener scrollVIEwListener) { this.scrollVIEwListener = scrollVIEwListener; } @OverrIDe protected voID onScrollChanged(int x,int oldy) { super.onScrollChanged(x,y,oldx,oldy); if(scrollVIEwListener != null) { scrollVIEwListener.onScrollChanged(this,x,oldy); } }}
这是托管内容ScrollVIEw和后台ScrollVIEw的活动
package com.example.parallax;// imports;public class ParallaxActivity extends Activity implements ScrollVIEwListener { private MyScrollVIEw mBgScrollVIEw; private MyScrollVIEw mContentScrollVIEw; @OverrIDe public voID onCreate(Bundle savedInstanceState) { mBgScrollVIEw = findVIEwByID(R.ID.background_sv); mContentScrollVIEw = findVIEwByID(R.ID.content_sv); mContentScrollVIEw.setonScrollListener(this); } // this is method for onScrollListener put values according to your need @OverrIDe public voID onScrollChanged(MyScrollVIEw scrollVIEw,int oldy) { super.onScrollChanged(scrollVIEw,oldy); // when the content scrollvIEw will scroll by say 100px,// the background scrollvIEw will scroll by 50px. It will // look like a parallax effect where the background is // scrolling with a different speed then the content scrollvIEw. mBgScrollVIEw.scrollTo(0,(int)(y / 2f)); }}总结
以上是内存溢出为你收集整理的android – 应用程序背景中的Paralax效果全部内容,希望文章能够帮你解决android – 应用程序背景中的Paralax效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)