`
zxs19861202
  • 浏览: 915366 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

android 实现背景滑动效果

 
阅读更多

效果类似网易新闻的新闻栏目切换时背景滑动效果


 

实现代码如下:

package com.example.viewpager;


import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.animation.Animation;

import android.view.animation.Animation.AnimationListener;

import android.view.animation.TranslateAnimation;

import android.widget.ImageView;

import android.widget.TextView;


public class Scroll extends Activity {

final int SUM = 6;


TextView[] mTVs;


ImageView[] mBGs;


int mPreClickID = 0;


int mCurClickID = 0;


@Override

public void onCreate(Bundle savedInstanceState){


super.onCreate(savedInstanceState);


setContentView(R.layout.activity_main);


initView();


}


public void initView(){


mTVs = new TextView[SUM];


mTVs[0] = (TextView) this.findViewById(R.id.text_btn1);


mTVs[1] = (TextView) this.findViewById(R.id.text_btn2);


mTVs[2] = (TextView) this.findViewById(R.id.text_btn3);

mTVs[3] = (TextView) this.findViewById(R.id.text_btn4);

mTVs[4] = (TextView) this.findViewById(R.id.text_btn5);

mTVs[5] = (TextView) this.findViewById(R.id.text_btn6);


mBGs = new ImageView[SUM];


mBGs[0] = (ImageView) this.findViewById(R.id.img_btn1);


mBGs[1] = (ImageView) this.findViewById(R.id.img_btn2);


mBGs[2]= (ImageView) this.findViewById(R.id.img_btn3);

mBGs[3]= (ImageView) this.findViewById(R.id.img_btn4);

mBGs[4]= (ImageView) this.findViewById(R.id.img_btn5);

mBGs[5]= (ImageView) this.findViewById(R.id.img_btn6);


for(int i = 0; i < SUM; i++){


mTVs[i].setOnClickListener(clickListener);


}


mTVs[0].setEnabled(false);


mPreClickID = 0;


}


private void updataCurView(int curClickID){


if(0 <= curClickID && SUM > curClickID){


mTVs[mPreClickID].setEnabled(true);


mTVs[curClickID].setEnabled(false);


mBGs[mPreClickID].setVisibility(View.INVISIBLE);


mBGs[curClickID].setVisibility(View.VISIBLE);


mPreClickID = curClickID;


}


}


private void startSlip(View v){



Animation a = new TranslateAnimation(0.0f, v.getLeft()-mTVs[mPreClickID].getLeft(), 0.0f, 0.0f);


a.setDuration(300);

a.setFillAfter(false);


a.setFillBefore(false);


for(int i = 0; i < SUM; i++)


{


if(mTVs[i] == v){


mCurClickID = i;


break;


}


}



a.setAnimationListener(new AnimationListener(){


public void onAnimationStart(Animation animation){


// TODO Auto-generated method stub


}


public void onAnimationEnd(Animation animation){


// TODO Auto-generated method stub


updataCurView(mCurClickID);


}


public void onAnimationRepeat(Animation animation){


// TODO Auto-generated method stub


}


});


mBGs[mPreClickID].startAnimation(a);

}


private View.OnClickListener clickListener = new View.OnClickListener(){


public void onClick(final View v){


startSlip(v);


}


};


}



布局文件的代码如下:

 

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


    xmlns:umadsdk="http://schemas.android.com/apk/res/com.LoveBus"


    android:layout_width="fill_parent"


    android:layout_height="fill_parent"


    android:orientation="vertical"

    >


 


    <LinearLayout  

        android:layout_width="wrap_content" 

        android:layout_height="wrap_content"

        android:background="@drawable/news_top_bg"> 

        

       

        <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_bg"

            android:id="@+id/img_btn1"/>

        

        <TextView

        android:id="@+id/text_btn1"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:layout_marginLeft="-32dp"

        android:layout_marginTop="-1dp"

        android:text="头条" 

        android:gravity="center"/>

       

        

      

        

       

       

         <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_bg"

            android:id="@+id/img_btn2"

            android:visibility="invisible"/>    

            

        <TextView

        android:id="@+id/text_btn2"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:layout_marginLeft="-32dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:gravity="center"

        android:text="政策" />

        

       

        

     

        

          <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_b1g"

            android:id="@+id/img_btn3"

            android:visibility="invisible"/>  

            

         <TextView

        android:id="@+id/text_btn3"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:layout_marginLeft="-55dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:gravity="center"

        android:text="地产金融" />

         

         

         

   

        

         <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_b1g"

            android:id="@+id/img_btn4"

            android:visibility="invisible"/>

            

        <TextView

        android:id="@+id/text_btn4"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:layout_marginLeft="-55dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:gravity="center"

        android:text="房企动态" />

        

       

        

       

        <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_b1g"

            android:id="@+id/img_btn5"

            android:visibility="invisible"

         />

        

        <TextView

        android:id="@+id/text_btn5"

        android:layout_width="wrap_content"

        android:layout_marginLeft="-55dp"

        android:layout_height="40dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:gravity="center"

        android:text="基金动态" />

        

     

        

      

        

         <ImageView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/two_green_b1g"

            android:id="@+id/img_btn6"

            android:visibility="invisible"/>

            

            

        <TextView

        android:id="@+id/text_btn6"

        android:layout_width="wrap_content"

        android:layout_height="40dp"

        android:layout_marginLeft="-55dp"

        android:padding="2dp"

        android:textSize="6pt"

        android:gravity="center"

        android:text="保险信托"/>

        

      

        

        </LinearLayout> 


</LinearLayout>

 

  • 大小: 16.9 KB
分享到:
评论

相关推荐

    自定义控件实现横向滑动背景图视差效果

    本文将深入探讨如何通过自定义控件实现横向滑动背景图的视差效果,这通常用于模仿真实世界中的深度感知,增强用户的沉浸感。我们将讨论以下几个方面: 1. **视差效果的理解**:视差效果是指当用户滚动或滑动界面时...

    Android RecyclerView 实现滑动吸顶效果

    通过以上步骤,你就可以在你的Android应用中实现一个功能完善的滑动吸顶效果。不过,实际开发中可能需要根据具体需求进行调整和优化。记得在编写代码时遵循最佳实践,确保代码的可读性和可维护性。

    Android背景滑动模糊的一种实现

    在Android开发中,实现背景滑动模糊的效果可以极大地提升应用的视觉体验,让用户感受到更为细腻且动态的界面交互。本文将深入探讨如何基于提供的资源"BlurTest"来实现这一功能,主要涉及Android图像处理和视图层动画...

    Android,自定义HorizontalScrollView,实现分页效果

    最后,为了让用户能感知到当前的分页状态,我们可能还需要添加一些视觉反馈,如滑动指示器或阴影效果,这可以通过在视图的背景或子视图上添加额外的元素来实现。 总的来说,自定义HorizontalScrollView实现分页效果...

    Android 实现小红书登陆页面背景图无限滚动效果

    在Android开发中,实现类似小红书登录页面的背景图无限滚动效果,是一种常见的视觉增强技术,能够给用户带来更加沉浸式的体验。这种效果通常通过组合使用ViewPager、RecyclerView或者自定义ViewGroup来实现。以下是...

    模仿移动MM Tab 点击 背景 滑动效果

    4. **滑动动画**:为了实现背景的滑动效果,可以使用ValueAnimator或ObjectAnimator配合属性动画来创建平滑的过渡。当用户点击Tab时,改变背景图片的位置或透明度,从而模拟滑动效果。 5. **事件监听**:在代码中,...

    android android SwipListview 抽屉滑动效果

    这些库提供了实现抽屉滑动效果所需的功能。 实现步骤如下: 1. **添加依赖**:在项目的build.gradle文件中,导入所需的库。例如,使用`com.daimajia.swipelistview.SwipeListView`库,添加如下依赖: ```groovy ...

    Android 滑动定位和吸附悬停效果实现代码

    在前两篇文章中,分别介绍了tablayout+scrollview 和 tablayout+recyclerview 实现的滑动定位的功能,文章链接: Android 实现锚点定位 Android tabLayout+recyclerView实现锚点定位 仔细看的话,这种滑动定位的...

    android自定义背景图片伸缩滑动仿2015qq空间顶部刷新阻尼效果

    但是,原生的ScrollView并不支持自定义的滑动效果。因此,我们需要创建一个自定义的ScrollView子类,并重写其滚动事件处理方法。 关键在于计算滑动比例,根据这个比例来改变背景图片的大小。在Android中,我们可以...

    android仿日历左右无限滑动效果

    在“android仿日历左右无限滑动效果”的实现中,开发者采用了三个ImageView来模拟日历页面,这是因为ImageView是最基本的图片展示组件,可以方便地加载和显示图片或背景。然而,这个设计思路并不仅限于ImageView,...

    Android 自定义View(四)实现股票自选列表滑动效果

    本文将深入探讨如何实现一个股票自选列表的滑动效果,这是Android应用中常见的一种交互设计,尤其在金融类应用中颇为流行。我们将基于博客"Android 自定义View(四)实现股票自选列表滑动效果"来解析这一过程。 ...

    Android可滑动的开关效果

    在Android开发中,实现一个可滑动的开关效果是常见的需求,这通常涉及到自定义视图和触摸事件处理。滑动开关,也被称为滑动toggle按钮或者slider开关,是一种用户界面元素,允许用户通过简单的左右滑动来切换两种...

    Android之实现滑动开关组件

    本教程将深入探讨如何在Android应用中实现滑动开关组件,包括基本使用、自定义样式以及事件监听。 首先,Android SDK提供了内置的`SwitchCompat`(对于兼容库)或`Switch`(对于API 14以上)控件,我们可以直接在...

    Android开发之使用150行代码实现滑动返回效果

    分隔视图通常会被用来做滑动效果,而内容视图则显示实际的应用内容。 6. **处理触摸事件** 覆盖`onInterceptTouchEvent()`和`onTouchEvent()`方法,让`ViewDragHelper`处理触摸事件。在这些方法中,我们需要调用`...

    Android_Anim_左右滑动效果.zip

    在Android开发中,动画(Anim)是提升用户体验的重要一环,尤其在实现界面交互时,如左右滑动效果。这个名为"Android_Anim_左右滑动效果.zip"的压缩包文件包含了一系列XML文件,用于实现Android应用中的滑动切换效果...

    Android点击左右按钮实现左右滑动页面切换

    最后,如果你想要更酷炫的滑动效果,可以考虑使用第三方库如`androidx.viewpager2.widget.ViewPager2`,它支持垂直滑动和更多自定义动画。此外,你还可以添加防止越界滑动的逻辑,当达到页面的边界时禁用对应方向的...

    Android 开关滑动效果

    在Android开发中,实现美观且交互性强的开关滑动效果是提升用户体验的重要一环。"Android 开关滑动效果"通常指的是使用特定的UI组件来模拟现实生活中开关的滑动行为,用户可以通过滑动该组件来开启或关闭某个功能。...

    android又测滑动导航、抽屉效果,更换背景图片

    这里,我们探讨的主题是“android又测滑动导航、抽屉效果,更换背景图片”,这是一个模仿天天动听应用实现的功能。我们将深入讨论实现这些功能的关键技术和步骤。 首先,滑动导航通常是指在屏幕一侧(通常是左侧或...

    Android开发界面阻尼效果的实现

    在项目`Parallax-master`中,可能包含了一个示例项目,演示了如何实现Parallax(视差)效果,这通常用于滑动时背景图像的缓慢滚动,可以增强滑动的视觉感受。你可以通过阅读源代码,学习如何在ListView或...

    安卓创建程序背景滑动效果.rar

    本教程将深入讲解如何在Android应用程序中实现背景滑动效果,这是一种常见的动画技术,常用于模拟页面滑动或者视差滚动等场景。 首先,我们需要了解Android中的动画系统。Android支持多种类型的动画,包括属性动画...

Global site tag (gtag.js) - Google Analytics