layout: post
title: Android背景设置
date: 2015-08-15
categories: blog
tags: [Android,background]
category: Android
description: 介绍在Android开发中常用的为View设置背景
在安卓开发的过程中,我们很多时候都需要设置背景的颜色,比如ListView的item的颜色在选中与不选中时候会是不同的.又如我们需要我Button的背景图设置圆角以及不同的状态颜色.
selector
最简单的用法就是下面这样,给不同的状态设置不同的颜色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@color/color_fffafafa"/>
<item android:state_pressed="true" android:drawable="@color/color_ffe9e9e9"/>
</selector>
有的时候我们不仅要设置颜色还要设置圆角等属性,就需要下面的方式
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="@dimen/ui_radius" />
<solid android:color="@color/teal_900"/>
</shape>
</item>
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="@dimen/ui_radius" />
<solid android:color="@color/teal_500"/>
</shape>
</item>
</selector>
动态设置背景与圆角度数
有的时候需要动态设置背景颜色与圆角度数,就需要在Java里面添加,在SDK中有这样一个类GradientDrawable,他可以动态的设置.
GradientDrawable gdDefault = new GradientDrawable();
gdDefault.setColor(Color.BLUE);
gdDefault.setCornerRadius(14);
view.setBackground(gdDefault);