Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码

Android直播软件搭建实现背景颜色滑动渐变效果的相关代码

一、介绍一下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、设置颜色(为了方便颜色自接写出来)

Orientation.TOP_BOTTOM为纵向,横向改变参数即可
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直播软件搭建之实现背景颜色滑动渐变效果的详细代码的文章就介绍到这了,更多相关android背景颜色滑动渐变内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android滑动拼图验证码控件使用方法详解

    简介: 很多软件为了安全防止恶意攻击,会在登录/注册时进行人机验证,常见的人机验证方式有:谷歌点击复选框进行验证,输入验证码验证,短信验证码,语音验证,文字按顺序选择在图片上点击,滑动拼图验证等. 效果图: 代码实现: 1.滑块视图类:SlideImageView.java.实现随机选取拼图位置,对拼图位置进行验证等功能. public class SlideImageView extends View { Bitmap bitmap; Bitmap drawBitmap; Bitmap ver

  • Android之FanLayout制作圆弧滑动效果

    目录 前言 简单分析 创建FanLayout 支持圆弧手势 添加轴承(中间的大表情) 对齐方式 Item保持垂直 轴承偏移 自动选中 布局模式 Item添加方向 添加指定选中 前言 在上篇文章(Android实现圆弧滑动效果之ArcSlidingHelper篇)中,我们把圆弧滑动手势处理好了,那么这篇文章我们就来自定义一个ViewGroup,名字叫就风扇布局吧,接地气. 在开始之前,我们先来看2张效果图 (表情包来自百度贴吧): 哈哈,其实还有以下特性的,就先不发那么多图了: 简单分析 圆弧手势

  • Android 滑动小圆点ViewPager的两种设置方法详解流程

    第一种方法: 一.测试如下,直接设置小圆点不是图标 二.准备工作 1.在drawable创建dot.xml,设置小圆点,比较方便 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="t

  • Android 滑动Scrollview标题栏渐变效果(仿京东toolbar)

    Scrollview标题栏滑动渐变 仿京东样式(上滑显示下滑渐变消失) /** * @ClassName MyScrollView * @Author Rex * @Date 2021/1/27 17:38 */ public class MyScrollView extends ScrollView { private TranslucentListener mTranslucentListener; public void setTranslucentListener(Translucent

  • Android深入探究自定义View之嵌套滑动的实现

    本文主要探讨以下几个问题: 嵌套滑动设计目的 嵌套滑动的实现 嵌套滑动与事件分发机制 嵌套滑动设计目的 不知道大家有没有注意过淘宝APP首页的二级联动,滑动的商品的时候上面类别也会滑动,滑动过程中类别模块停了商品还能继续滑动.也就是说滑动的是view,ViewGroup也会跟着滑动.如果用事件分发机制处理也能处理,但会及其麻烦.那用NestedScroll会咋样? 嵌套滑动的实现 假设布局如下 RecyclerView 实现了 NestedScrollingChild 接口,NestedScro

  • Android HorizontalScrollView滑动与ViewPager切换案例详解

    layout布局 <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" tools:co

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

    目录 前言 一.介绍一下GradientDrawable 二.实现 三.源码: 总结 前言 今天和朋友聊到这个功能,刚开始的想法是自定义view,如何进行滑动监听,经过一列操作完成效果后,发现了一个贼简单的实现效果,如下(老规矩后面有可运行代码). 效果图: 一.介绍一下GradientDrawable GradientDrawable 支持渐变色的Drawable,与shapeDrawable是类似的,多了支持渐变色. 代码中的GradientDrawable比xml中的shape下gradi

  • Android之ArcSlidingHelper制作圆弧滑动效果

    目录 前言 初步分析 选择旋转方案 知其然,知其所以然 创建ArcSlidingHelper 前言 我们平时在开发中,难免会遇到一些比较特殊的需求,就比如我们这篇文章的主题,一个关于圆弧滑动的,一般是比较少见的.其实在遇到这些东西时,不要怕,一步步分析他实现原理,问题便能迎刃而解. 前几天一位群友发了一张图,问类似这种要怎么实现: 要支持手势旋转 旋转后惯性滚动 滚动后自动选中 哈哈, 来一张自己实现的效果图: 初步分析 首先我们看下设计图,Item绕着一个半圆旋转,如果我们是自定义ViewGr

  • Android 实现滑动的六种方式

    目录 1.效果视频 2.剖析Android坐标系 3.实现方式 3.1 layout 3.2 scrollBy 3.3 offsetLeftAndRight offsetTopAndButton 3.4 LayoutParams 3.5 Scroller 3.6 平移动画 1.效果视频 2.剖析Android坐标系 滑动的本质是移动,滑动的原理就是通过不断的改变View的坐标而实现. Android系统提供了很多方法获取坐标值,可以将其分为两种类别,具体如下: View 提供的获取坐标的方法:

  • Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码

    Android直播软件搭建实现背景颜色滑动渐变效果的相关代码 一.介绍一下GradientDrawable GradientDrawable 支持渐变色的Drawable,与shapeDrawable是类似的,多了支持渐变色. 代码中的GradientDrawable比xml中的shape下gradient属性更加具体,shape下gradient属性只支持三色阶渐变,而GradientDrawable可以有更多的色阶渐变(GradientDrawable在Android中便是shape标签的代

  • Android实现状态栏和虚拟按键背景颜色的变化实例代码详解

    今天介绍一下,我在项目开发过程中,实现状态栏和虚拟按键背景颜色变化的方法,实现方式是,通过隐藏系统的状态栏和虚拟按键的背景,实现图片和背景显示到状态栏和虚拟按键下方.下面来看实现代码: 实现状态栏背景的设置 状态栏工具类 public class StatusBarUtil { /** * 设置沉浸式状态栏 * * @param activity 需要设置的activity */ public static void setTransparent(Activity activity) { //A

  • Android实现沉浸式通知栏通知栏背景颜色跟随app导航栏背景颜色而改变

    最近好多app都已经满足了沉浸式通知栏, 所谓沉浸式通知栏:就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对"隐形"的界面来达到把用户可视范围最大化地用到内容本身上. 而最新安卓4.4系统的通知栏沉浸模式就是在软件打开的时候通知栏和软件顶部颜色融为一体,这样不仅可以使软件和系统本身更加融为一体. 就是手机的通知栏的颜色不再是白色.黑色简单的两种了,本人用的小米4手机,米4手机中的自带软件都支持沉浸式通知栏, 举个例子:大家可以看一下自己的qq,它的标题的背景颜色是

  • C# 如何设置label(标签)控件的背景颜色为透明

    有时候,我们需要将控件的背景颜色设定为透明,比如说label(标签)控件.那么,如何将控件的背景颜色设定为透明?是不是只要将控件的BackColor属性设为Transparent(透明)就可以了呢?答案是否定的.看似很简单,其实不然,在实际操作过程中,很让人抓狂,抓狂到让你怀疑人生. 关于透明 首先要解释一下,什么叫做透明.在C#这里,透明就是指透过控件的背景,可以看到其父控件(容器)表面的颜色.所谓的透明,其实就是将父控件表面的颜色设定为自己的背景颜色. 设置控件背景颜色为透明的步骤和注意事项

  • 修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解

    修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解 首先看一张图片 我是在一个不错的开源的FloatingActionButton库基础上实现的,链接github开源库 参考图片的标记和代码里的注释.代码如下: <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/fab_meau" android:layout_width="wra

  • Android设置PreferenceCategory背景颜色的方法

    本文实例讲述了Android设置PreferenceCategory背景颜色的方法.分享给大家供大家参考.具体分析如下: 大家可能遇到,PreferenceCategory默认是黑色背景,如何我们更换了PreferenceScreen的背景,那么这种分隔栏看上去很丑,那么怎么更改背景呢?我们可以通过自定义VIEW来实现. 代码如下: public class MyPreferenceCategory extends PreferenceCategory { public MyPreference

  • Android 自定义SeekBar 实现分段显示不同背景颜色的示例代码

    在最近的开发工作中,要实现一个调色板的进度条,SeekBar要分成10段显示不同颜色,功夫不负有心人,终于实现了这个功能,下面分享给大家 示例图: 1.自定义SeekBar import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import

  • Android小程序实现切换背景颜色

    本文实例为大家分享了Android实现切换背景颜色的具体代码,供大家参考,具体内容如下 (1)首先打开界面布局文件,添加两个Button <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"

  • Android直播系统平台搭建之图片实现阴影效果的方法小结

    Android直播系统平台搭建, 图片实现阴影效果的若干种方法,下面给大家列举了三种方法,具体代码如下所示: 第一种 使用 layer-list <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--底层的左边距离上层左边3dp, 底层的顶部,

随机推荐