android – 应用程序背景中的Paralax效果

android – 应用程序背景中的Paralax效果,第1张

概述我是 Android世界的新手.我想在我的应用程序中添加一些视差背景效果. 我该怎么做?如何在Android中实现这一目标? 是否有任何有效的方法来创建2-3层视差背景? Android API中是否有一些工具或类? 或者我可能需要在代码中“手动”修改背景图像位置或边距? 我正在使用API​​级别19. 我试图理解Paralloid库,但是这个太大了,无法解释.我是Android和Java的新手, 我是 Android世界的新手.我想在我的应用程序中添加一些视差背景效果.

我该怎么做?如何在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效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存