欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實現(xiàn)背景顏色滑動漸變效果的全過程

 更新時間:2021年09月02日 16:27:41   作者:計蒙不吃魚  
在Android開發(fā)中,經(jīng)常需要設(shè)置控件的背景顏色或者圖片的src顏色,下面這篇文章主要給大家介紹了關(guān)于Android實現(xiàn)背景顏色滑動漸變效果的相關(guān)資料,本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

今天和朋友聊到這個功能,剛開始的想法是自定義view,如何進行滑動監(jiān)聽,經(jīng)過一列操作完成效果后,發(fā)現(xiàn)了一個賊簡單的實現(xiàn)效果,如下(老規(guī)矩后面有可運行代碼)。

效果圖:

一、介紹一下GradientDrawable

GradientDrawable 支持漸變色的Drawable,與shapeDrawable是類似的,多了支持漸變色。
代碼中的GradientDrawable比xml中的shape下gradient屬性更加具體,shape下gradient屬性只支持三色階漸變,而GradientDrawable可以有更多的色階漸變(GradientDrawable在Android中便是shape標(biāo)簽的代碼實現(xiàn))。

二、實現(xiàn)

1、在布局中放入一個ScrollView,然后確保里面的內(nèi)容能夠達到滑動的效果。

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、設(shè)置顏色(為了方便顏色自接寫出來)

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

5、獲取控件與屏幕高度(寬度)的比例,根據(jù)比例設(shè)置顏色個數(shù)

   //得到控件的高度與屏幕高度的比例
    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;
     }
}

總結(jié)

到此這篇關(guān)于Android實現(xiàn)背景顏色滑動漸變效果的文章就介紹到這了,更多相關(guān)Android背景顏色滑動漸變內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Glide實現(xiàn)加載圖片顯示進度條效果

    Glide實現(xiàn)加載圖片顯示進度條效果

    Glide作為安卓開發(fā)常用的圖片加載庫,有許多實用而且強大的功能,那么,下面這篇文章主要給大家介紹了利用Glide實現(xiàn)加載圖片顯示進度條效果的相關(guān)資料,文中給出了詳細的示例代碼供大家參考學(xué)習(xí),需要的朋友們下來一起看看吧。
    2017-05-05
  • Android編程開發(fā)ScrollView中ViewPager無法正?;瑒訂栴}解決方法

    Android編程開發(fā)ScrollView中ViewPager無法正?;瑒訂栴}解決方法

    這篇文章主要介紹了Android編程開發(fā)ScrollView中ViewPager無法正?;瑒訂栴}解決方法,以實例形式分析了ScrollView中滑動失效的原因及解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android 可拖動的seekbar自定義進度值

    Android 可拖動的seekbar自定義進度值

    這篇文章主要介紹了Android 可拖動的seekbar自定義進度值的相關(guān)資料,有需要的朋友參考下
    2016-04-04
  • Android TextView跑馬燈效果實現(xiàn)方法

    Android TextView跑馬燈效果實現(xiàn)方法

    這篇文章主要介紹了Android TextView跑馬燈效果實現(xiàn)方法,涉及Android布局文件中相關(guān)屬性的設(shè)置技巧,非常簡單實用,需要的朋友可以參考下
    2016-01-01
  • 一文帶你看懂Android Application啟動流程是怎樣的

    一文帶你看懂Android Application啟動流程是怎樣的

    談到Android Application的啟動流程,很多文章都是各種源碼類和方法的一堆調(diào)用關(guān)系,這樣的文章就算看一百遍,也只是云里霧里。源碼得看,但是最好不要一下子深陷到源碼的細節(jié)之中,不可自拔。這里站在前人的基礎(chǔ)之上做一個總結(jié)
    2021-10-10
  • Android簡單的短信驗證功能的實現(xiàn)代碼

    Android簡單的短信驗證功能的實現(xiàn)代碼

    這篇文章主要介紹了Android簡單的短信驗證功能的實現(xiàn)代碼,本文是小編使用sdk過程的一些心得,需要的朋友可以參考下
    2018-07-07
  • Popupwindow 的簡單實用案例(顯示在控件下方)

    Popupwindow 的簡單實用案例(顯示在控件下方)

    下面小編就為大家?guī)硪黄狿opupwindow 的簡單實用案例(顯示在控件下方)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果

    Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果

    這篇文章主要為大家介紹了Android添加自定義下拉刷新布局阻尼滑動懸停彈動畫效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Android應(yīng)用框架之應(yīng)用啟動過程詳解

    Android應(yīng)用框架之應(yīng)用啟動過程詳解

    這篇文章主要為大家詳細介紹了Android應(yīng)用框架,應(yīng)用啟動過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android?Jetpack?組件LiveData源碼解析

    Android?Jetpack?組件LiveData源碼解析

    這篇文章主要為大家介紹了Android?Jetpack?組件LiveData源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論