Android背景颜色滑动渐变效果

这是我参加8月更文应战的第28天,活动概略查看:8月更文应战

系列文章目录

Android布景色彩滑动突变作用


前语

今天和朋友聊到这个功用,刚开始的主见是自定义view,怎么进行滑动监听,通过一列操作完结作用后,发现了一个贼简略的完结作用,如下(老源码资源站规矩后边有可工作代码)。

作用图:

Android布景色彩滑动突变作用


一、介绍一下GradientDrawable

GradientDrawable 支撑突变色的Drawable,与shapeDrawable是相似的,多了支撑突变色。

代码中的源码交易平台Grad像素射击下载安装ientDrawable比xml中的shape下g像素射击破解版radient特征更加具体,shape下gradient特征只支撑三色阶突变,而GradientDrawable可以有更多的色阶突变(GradientDrawable在Android中就是shape标签的代码完结)。

二、完结

1、在布局中放入一个ScrollView,然后确保里面的android的drawable类内容可以抵达滑动的效android下载安装果。

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;
}
}

发表评论

提供最优质的资源集合

立即查看 了解详情