这是我参加8月更文应战的第28天,活动概略查看:8月更文应战
系列文章目录
Android布景色彩滑动突变作用
前语
今天和朋友聊到这个功用,刚开始的主见是自定义view,怎么进行滑动监听,通过一列操作完结作用后,发现了一个贼简略的完结作用,如下(老源码资源站规矩后边有可工作代码)。
作用图:
一、介绍一下GradientDrawable
GradientDrawable 支撑突变色的Drawable,与shapeDrawable是相似的,多了支撑突变色。
代码中的源码交易平台Grad像素射击下载安装ientDrawable比xml中的shape下g像素射击破解版radient特征更加具体,shape下gradient特征只支撑三色阶突变,而GradientDrawable可以有更多的色阶突变(GradientDrawable在Android中就是shape标签的代码完结)。
二、完结
1、在布局中放入一个ScrollView,然后确保里面的android的drawable类内容可以抵达滑动的效android下载安装果。
2、获取屏幕的高度
//获取屏幕高度 privat源码e float getScreenHeight(){ DisplayMetr像素游戏ics metric = new Displa像素射击下载yMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metricandroid电子市场.像素widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels; // 屏幕高度(像素) return height; }
3、获取控件高度(此事例为Scrol像素游戏lView中包裹的榜首个子控件)。
4、设置色彩(为了便当色彩自接写出来)
Orientation.TOP_BOTTOM为纵向,横向改动参数即可
Gradi源码entDrawable aDrawabandroid是什么手机牌子le = new GradientDrawable(Gandroid是什么手机牌子radientDrawable.Orientati像素生计者2on.TOP_BOTTOM, new iandroid/yunosnt[]{Color.parseColor(像素生计者2"#ffffff"), Color.parseColor("#009966"),Color.parseColor("#00ff00")}); ll_base.setBackground(aDrawable);
5、获取控件与屏幕高度(宽度)的比例,依据比例设置色彩个数
/android手机/得到控件的高度与屏幕高度的比例 privateandroid下载安装 fandroid什么意思loat getScreenHeightScale(int height){ return height/getScreenHeight(); }
三、源码:
public class BaseActivity extends Activity { private LinearLayout ll_base; private int heights; @Overrandroid是什么手机牌子ide 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(apandroid的drawable类i = Build.VERSION_CODES.JELLY_BEAN) @Override public void onWindowFocusChanged(boolean hasFocus) { super.onW像素游戏indowFocusChanged(像素射击破解版hasFocus); heights = ll_base.getMeasuredHeight(); float colorandroid平板电脑价格amount=gandroid是什么手机牌子etScreenHeightScale(heights); if (coloramount>=0&&coloramount<1.5f){ GradientDrandroid电子市场awable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,源码本钱 new int[]{Color.parseColo像素地牢r("#fff源码分享网fff"), Color.parseColor("#0099Android66")}); ll_base.setBackground(aDrawabandroid下载安装le); } if (coloramount>=1.5f&&coloramoandroid/yunosunt<3.0f){ GradientDrawable aDrawable = new GradieAndroidntDrawab像素射击下载le(GradientD源码分享网rawable.Orie像素射击破解版ntation.TOP_BOTTOM, new int[]{Color.parseColor("#ffffff"), Color.android什么意思parseColor("#009966"), Color.parseCol源码本钱or("#00ff00")}); llandroid体系_base.setBack像素工厂ground(aDrawable); } if (coloramount>=3.0f&&color源码时代训练怎么样amount<4.5f){ GradientDrawable aDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOandroid什么意思M, new inAndroidt[]{Color.parseColor("#ffffff"), C源码本钱olor.parseColor("#009966")源码时代训练怎么样, Color.parseColor("#00ff00"),Co像素生计者2lor.parseColorandroid手机("#000000")})像素地牢; ll_base.setBackground(aDrawabl像素生计者2e); } // ................. } //得到控件的高度与屏幕高度的比例 private floa像素工厂t getScreenHeightScale(int heightandroid的drawable类){ return height/getScreenHeandroid的drawable类ight(); } //获取屏幕高度 private float getScreenHeandroid手机ight(){ DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metr像素画ic.heightPixels; // 屏幕高度(像素) return height; } }