android背景颜色渐变

来源:互联网 发布:《算法统宗》 编辑:程序博客网 时间:2024/04/29 16:20

Android完成颜色渐变是可以靠代码实现的,那么我简单介绍一下实现的方法,下图是我在项目开发中的一个截图,其中上方颜色值为#e8e8e8,下方颜色值为#dbdbdb,想要实现渐变并且在渐变的结束有一条明显的线,那么就需要渐变结束时的颜色略深于dbdbdb就OK了,

在drawable中建立一个test_gradient.xml文件内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:shape="rectangle" >  
  4.   
  5.     <gradient  
  6.         android:angle="270"  
  7.         android:endColor="#b9b9b9"  
  8.         android:startColor="#e8e8e8" />  
  9.   
  10. </shape>  

然后用法如下:

  1. <ImageView  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="10dip"  
  4.     android:background="@drawable/test_gradient" />  

OK了,我的endColor略深于下面的颜色dbdbdb,这样渐变结束的时候会有一条明显的线,如果不想要这个线,则把endColor设置成dbdbdb,就OK~。gradient中的angle指的是渐变颜色的角度,改成90,180,270,大家分别自己试一试效果吧,我就不截图了。



1.Android 在XMl里面共享同一布局文件
一直以为共享同一布局文件都是在之前写好的布局之后复制过来,或者通过 java代码使用layoutInflater Add进来的。但今天提供了一个更为方便的使用方法,可以在你的任意LAYOUT文件里面将其他的LAYOUT文件拿过来使用,代码也很简单,如下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout  android:id="@+id/FrameLayout01"
    android:background="@drawable/layout_background"android:layout_width="fill_parent"
    android:layout_height="wrap_content"xmlns:android="http://schemas.android.com/apk/res/android">
<TextViewandroid:text="欢迎你使用本软件"android:id="@+id/TextView01"
        android:textColor="#f0f0f0"android:layout_width="wrap_content"
        android:layout_height="wrap_content"></TextView>
</LinearLayout>

这是我定义的公用layout 文件,我给他起名为:title
然后我们在另外的布局文件如下使用:
<includelayout="@layout/title"
/>
即可将title 的布局直接拿到我们当前的布局文件中。
Tip:使用include标记将layout 放入我们当前的layout文件,也可以直接使用当前 view .findViewByid得到title 布局文件中的任意View 。


2.使用XML的方式为背景添加渐变的效果
首先,在res/Drawable 文件夹里面添加一个jbshape.xml文件,然后写入如下代码:
android背景颜色渐变 - 陈振国 -
shape 节点配置的是图形的形式,主要包括方形、圆形等,上边代码为方形,

在这里要注意android:type="radial"类型的使用会有不同的效果

gradient 节点主要配置起点颜色、终点颜色及中间点的颜色、坐标、渐变效果(0,90,180从左到右渐变,270从上到下渐变)默认从左到右
padding 节点主要配置上下左右的间距

corners 节点配置四周园脚的半径

实现这个效果,需要定一个title.xml 内容如下:

<?xml version=”1.0″ encoding=”UTF-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
       android:orientation=”vertical”
       android:layout_width=”fill_parent”
       android:layout_height=”fill_parent”
       android:background=”@drawable/jbshape”

android:paddingLeft=”0px”>


3.如何用代码自定义Android 自动生成的标题?

在onCreate中加入以下代码:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
       setContentView(R.layout.main);
       getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);


 

参考:http://apps.hi.baidu.com/share/detail/34168668


原创粉丝点击