iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现背景颜色滑动渐变效果的全过程
  • 507
分享到

Android实现背景颜色滑动渐变效果的全过程

2024-04-02 19:04:59 507人浏览 八月长安
摘要

目录前言一、介绍一下GradientDrawable二、实现三、源码:总结前言 今天和朋友聊到这个功能,刚开始的想法是自定义view,如何进行滑动监听,经过一列操作完成效果后,发现

前言

今天和朋友聊到这个功能,刚开始的想法是自定义view,如何进行滑动监听,经过一列操作完成效果后,发现了一个贼简单的实现效果,如下(老规矩后面有可运行代码)。

效果图:

一、介绍一下GradientDrawable

GradientDrawable 支持渐变色的Drawable,与shapeDrawable是类似的,多了支持渐变色。
代码中的GradientDrawable比xml中的shape下gradient属性更加具体,shape下gradient属性只支持三色阶渐变,而GradientDrawable可以有更多的色阶渐变(GradientDrawable在Android中便是shape标签的代码实现)。

二、实现

1、在布局中放入一个ScrollView,然后确保里面的内容能够达到滑动的效果。

2、获取屏幕的高度


    //获取屏幕高度
     private float getScreenHeight(){
         DisplayMetrics metric = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(metric);
         int width = metric.widthPixels;     // 屏幕宽度(像素)
         int height = metric.heightPixels;   // 屏幕高度(像素)
         return  height;
     }

3、获取控件高度(此案例为ScrollView中包裹的第一个子控件)。

4、设置颜色(为了方便颜色自接写出来)


  GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
                    new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"),Color.parseColor("#00ff00")});
            ll_base.setBackground(aDrawable);

5、获取控件与屏幕高度(宽度)的比例,根据比例设置颜色个数


   //得到控件的高度与屏幕高度的比例
    private float getScreenHeightScale(int height){
        return height/getScreenHeight();
    }

三、源码:


public class BaseActivity extends Activity {
    private LinearLayout ll_base;
    private int heights;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        initView();
    }


    private void initView() {
        ll_base = (LinearLayout) findViewById(R.id.ll_base);
    }



    @Requiresapi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        heights = ll_base.getMeasuredHeight();
        float coloramount=getScreenHeightScale(heights);
        if (coloramount>=0&&coloramount<1.5f){
            GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
                    new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966")});
            ll_base.setBackground(aDrawable);
        }
        if (coloramount>=1.5f&&coloramount<3.0f){
            GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
                    new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"), Color.parseColor("#00ff00")});
            ll_base.setBackground(aDrawable);
        }
        if (coloramount>=3.0f&&coloramount<4.5f){
            GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
                    new int[]{Color.parseColor("#ffffff"), Color.parseColor("#009966"), Color.parseColor("#00ff00"),Color.parseColor("#000000")});
            ll_base.setBackground(aDrawable);
        }
       // .................
    }

    //得到控件的高度与屏幕高度的比例
    private float getScreenHeightScale(int height){
        return height/getScreenHeight();
    }
     //获取屏幕高度
     private float getScreenHeight(){
         DisplayMetrics metric = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(metric);
         int width = metric.widthPixels;     // 屏幕宽度(像素)
         int height = metric.heightPixels;   // 屏幕高度(像素)
         return  height;
     }
}

总结

到此这篇关于Android实现背景颜色滑动渐变效果的文章就介绍到这了,更多相关Android背景颜色滑动渐变内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android实现背景颜色滑动渐变效果的全过程

本文链接: https://www.lsjlt.com/news/134469.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现背景颜色滑动渐变效果的全过程
    目录前言一、介绍一下GradientDrawable二、实现三、源码:总结前言 今天和朋友聊到这个功能,刚开始的想法是自定义view,如何进行滑动监听,经过一列操作完成效果后,发现...
    99+
    2024-04-02
  • css怎么实现背景颜色渐变效果
    本文小编为大家详细介绍“css怎么实现背景颜色渐变效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css怎么实现背景颜色渐变效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,在页面中创建一个div标签;...
    99+
    2023-07-04
  • Android实现颜色渐变动画效果
    目录前言一、Android中插值器TypeEvaluator二、案例效果实现1.利用Android自带的颜色插值器ArgbEvaluator2.看看Android自带颜色插值器Arg...
    99+
    2024-04-02
  • Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码
    Android直播软件搭建实现背景颜色滑动渐变效果的相关代码 一、介绍一下GradientDrawable GradientDrawable 支持渐变色的Drawable,与sha...
    99+
    2024-04-02
  • Android Textview实现颜色渐变滚动效果
    本文实例为大家分享了Android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下public class FlashTextView extends android.support.v7.widget.AppCompatTextVie...
    99+
    2023-05-30
    android textview 渐变
  • css如何实现背景颜色线性渐变和径向渐变效果
    这篇文章主要介绍了css如何实现背景颜色线性渐变和径向渐变效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css如何实现背景颜色线性渐变和径向渐变效果文章都会有所收获,下面我们一起来看看吧。一、线性渐变(li...
    99+
    2023-07-05
  • Android怎么实现颜色渐变动画效果
    本篇内容主要讲解“Android怎么实现颜色渐变动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么实现颜色渐变动画效果”吧!效果图:一、Android中插值器TypeEva...
    99+
    2023-06-30
  • android颜色渐变动画效果怎么实现
    在Android中,你可以使用ValueAnimator和ArgbEvaluator类来实现颜色渐变动画效果。下面是一个简单的示例代...
    99+
    2023-08-18
    android
  • react-native实现渐变色背景过程
    目录react-native 渐变色背景react-native学习记录滚动条轮播图示例渐变色ScrollableTabView默认页面ScrollableTabView背景颜色Sc...
    99+
    2024-04-02
  • Unity实现颜色渐变滑动条
    本文实例为大家分享了Unity实现颜色渐变滑动条的具体代码,供大家参考,具体内容如下 效果展示 代码 直接挂在UGUI Slider上即可 using UnityEngine;...
    99+
    2024-04-02
  • css3中怎么使用animation属性实现背景颜色动态渐变的效果
    本篇内容主要讲解“css3中怎么使用animation属性实现背景颜色动态渐变的效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3中怎么使用animat...
    99+
    2024-04-02
  • 如何通过css3背景控制属性+使用颜色过渡实现渐变效果
    小编给大家分享一下如何通过css3背景控制属性+使用颜色过渡实现渐变效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css3背景图像相关background-c...
    99+
    2023-06-08
  • 如何通过纯CSS实现网页的平滑滚动背景渐变效果
    如何通过纯CSS实现网页的平滑滚动背景渐变效果一、引言在网页设计中,背景渐变效果可以为网站增加美感和动态感。而平滑滚动背景渐变则可以使网页更加吸引人,给用户带来舒适的浏览体验。本文将介绍如何通过纯CSS实现网页的平滑滚动背景渐变效果,并提供...
    99+
    2023-10-25
    CSS 平滑滚动 背景渐变
  • 如何使用CSS制作渐变背景颜色的效果
    如何使用CSS制作渐变背景颜色的效果背景色渐变效果能够为网页增添美观和吸引力。在CSS中,我们可以使用渐变背景色来实现这一效果。本文将介绍如何使用CSS来制作渐变背景色的效果,并提供具体的代码示例。一、线性渐变(Linear gradien...
    99+
    2023-10-25
    CSS 渐变背景 制作效果
  • 利用CSS实现元素的渐变背景色效果
    利用CSS实现元素的渐变背景色效果在Web开发中,为元素添加背景色是非常常见的需求。而为了使页面更加丰富多样,我们通常希望能够实现元素背景色的渐变效果。本文将详细介绍如何利用CSS来实现元素的渐变背景色效果,并提供具体的代码示例。CSS提供...
    99+
    2023-11-21
    CSS渐变背景色
  • CSS容器背景如何实现颜色渐变
    这篇文章主要介绍了CSS容器背景如何实现颜色渐变,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。语法background: linear-gradient(direc...
    99+
    2023-06-08
  • CSS如何实现背景渐变过渡效果
    今天小编给大家分享一下CSS如何实现背景渐变过渡效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • CSS怎么实现颜色渐变效果
    这篇文章主要介绍“CSS怎么实现颜色渐变效果”,在日常操作中,相信很多人在CSS怎么实现颜色渐变效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS怎么实现颜色渐变效果”...
    99+
    2024-04-02
  • 如何通过纯CSS实现网页的平滑滚动背景图片渐变效果
    在现代的网页设计中,丰富的背景效果可以提升网页的美观度和用户体验。其中,平滑滚动和背景图片渐变效果是常用的一种设计方式。本文将介绍如何通过纯CSS实现网页的平滑滚动背景图片渐变效果,并提供具体的代码示例。一、平滑滚动效果首先,我们需要创建一...
    99+
    2023-10-21
    平滑滚动 网页 关键词:CSS
  • Android实现背景图滑动变大松开回弹效果
    本文实例为大家分享了Android实现背景图滑动变大松开回弹的具体代码,供大家参考,具体内容如下 原图 放大后 1、自定义view继承ScrollView实现效果 public ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作