利用ShapeDrawable自定义控件的shape

简介: MainActivity如下: package cn.testshape;import android.os.Bundle;import android.

MainActivity如下:

package cn.testshape;
import android.os.Bundle;
import android.app.Activity;
/**
 * Demo描述:
 * 利用ShapeDrawable(xml形式)自定义控件的shape
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}

}


main.xml如下:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button
        android:layout_width="250dip"
        android:layout_height="50dip"
        android:text="测试自定义shape的使用" 
        android:background="@drawable/background_selector"
        android:textColor="@drawable/textcolor_selector"
        android:layout_centerInParent="true"
        android:gravity="center"
      />

</RelativeLayout>


 


background_selector.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:drawable="@drawable/pressed_shape" android:state_pressed="true"/>
     <item android:drawable="@drawable/default_shape"/>
</selector>


default_shape.xml如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- 定义矩形rectangle -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >
    <!-- 定义边框颜色 -->
    <solid android:color="#d1d1d1" />
    <!-- 定义圆角弧度 -->
    <corners
        android:bottomLeftRadius="4dp"
        android:bottomRightRadius="4dp"
        android:topLeftRadius="4dp"
        android:topRightRadius="4dp" 
    />

</shape>


pressed_shape.xml如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- 定义矩形rectangle -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >
    <!-- 定义边框颜色 -->
    <solid android:color="#7bb3f8" />
    <!-- 定义圆角弧度 -->
    <corners
        android:bottomLeftRadius="4dp"
        android:bottomRightRadius="4dp"
        android:topLeftRadius="4dp"
        android:topRightRadius="4dp" 
    />

</shape>


textcolor_selector.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
      <item android:color="#ffffff" android:state_pressed="true"/>
      <item android:color="#000000"/>
</selector>

 

相关文章
|
Swift
SwiftUI极简教程32:使用Shape形状和Animation动画创建一个圆形进度条
SwiftUI极简教程32:使用Shape形状和Animation动画创建一个圆形进度条
864 0
SwiftUI极简教程32:使用Shape形状和Animation动画创建一个圆形进度条
|
C#
[UWP]不怎么实用的Shape指南:自定义Shape
原文:[UWP]不怎么实用的Shape指南:自定义Shape 1. 前言 这篇文章介绍了继承并自定义Shape的方法,不过,恐怕,事实上,100个xaml的程序员99个都不会用到。写出来是因为反正都学了,当作写个笔记。
756 0
|
XML Android开发 数据格式
shape图形的使用
shape图形的使用 在项目中如果用到有规律的常规的图形,在能够掌握的前提下建议使用shape图形,shape图形相对与图片来说,占用资源更小,并且使用起来不会失真。
1155 0
|
API C# Windows
[UWP]用Shape做动画
原文:[UWP]用Shape做动画 相对于WPF/Silverlight,UWP的动画系统可以说有大幅提高,不过本文无意深入讨论这些动画API,本文将介绍使用Shape做一些进度、等待方面的动画,除此之外也会介绍一些相关技巧。
803 0
|
5月前
|
数据可视化 C# Windows
不可不知的WPF形状(Shape)
【9月更文挑战第5天】在 WPF(Windows Presentation Foundation)中,形状(Shape)用于创建图形元素,如矩形、椭圆、直线、多边形和折线等。形状具有多种属性,如 Fill(填充颜色)、Stroke(边框颜色)、StrokeThickness(边框粗细)和 Opacity(不透明度)。此外,还可以对形状应用变换,如平移、旋转和缩放,并处理鼠标事件等交互。这些功能使得 WPF 能够实现复杂且灵活的图形设计与用户界面效果。
编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle
编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle
|
9月前
|
异构计算
Pyglet shaps形状控件的种类和用法(共12种)
Pyglet shaps形状控件的种类和用法(共12种)
96 1
|
前端开发 开发者
|
Android开发 数据格式 XML
Android 自定义shape圆形按钮
Shape的属性:    solid          描述:内部填充        属性:android:color 填充颜色     size          描述:大小        属性:                  android:width 宽  ...
1840 0

热门文章

最新文章