Android实例-手机安全卫士(二十)-使用shape形状,自定义组件边框、形状等

一、目标。

  1、实现文本组件的点击事件。

  2、实现组件(TextView等)以形状(圆角矩形、椭圆、圆环等)显示,也可为其增加自定义边框、渐变等属性。并可以与样式组合,可实现默认、按下等过程显示不同的形状。

默认:  按下:

二、代码实现。

  1、TextView对象带有点击事件,需对clickable属性设为true,并取名点击事件名称,即onclick属性值为resetWizard。

  2、在手机防盗界面实现点击事件处理,(即重新进入”设置向导“界面)

点击事件处理代码;

//重新进入防盗设置向导界面
	public void resetWizard(View view){
		Intent intent =new Intent(SecurityActivity.this,SetupWizard_ui_1.class);
		startActivity(intent);
		finish();
	} 

  2、shape形状。(可参照“参考文档介绍)

    ①.在res文件夹下的drawable文件夹内新建文件(new-file),取名(gradient_box)并以.xml为后缀。

    ②.在新建文件中确定xml版本和编码格式。再建一个<shape>标签,在其属性中确定命名空间(xmlns:android="http://schemas.android.com/apk/res/android"

android:shape="形状"),形状的值可以指定需要的形状(矩形rectangle、椭圆形oval、直线line、环形ring)

    ③.在<shape>标签中增加其他标签用于指定形状的样式(如角corners、直径、渐变gradient等),在这些样式标签的属性中指定相应的值。

shape代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners android:radius="15dip" />
	<!-- 渐变 -->
    <gradient
        android:endColor="#0000ff"
        android:startColor="#ff0000" />
    <!-- 固定颜色,与渐变冲突 -->

    <solid android:color="#50000000"/>
    <!-- 边框 -->
    <stroke android:width="2dip"
        android:color="#000000"
        android:dashWidth="3dip"
        android:dashGap="5dip"/>

</shape>

  3、在需要使用shape形状的组件中设置background属性,通过@drawable找到新建的样式文件。

  4、出background属性可引用外,在drawable文件夹下的style.xml中也可以引用该样式,从而实现默认、聚焦、按下等不同过程显示不同的形状样式。

新建样式代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
        android:drawable="@drawable/gradient_box_pressed" ></item>  <!-- press -->

    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" /> <!-- focused -->   

    <item android:drawable="@drawable/gradient_box"/> <!-- default -->   

</selector>

 

时间: 2024-10-09 03:04:03

Android实例-手机安全卫士(二十)-使用shape形状,自定义组件边框、形状等的相关文章

Android实例-手机安全卫士(十二)-制作输入密码对话框并设置相应点击事件

一.目标. 自定义输入密码对话框,根据输入的密码与保存着的密码进行判断. 二.代码实现. 1. 采用第十节的方法自定义一个输入密码的对话框. 2.为按钮设置点击事件,主要介绍“确认”按钮的点击事件. ①.通过TextView对象的getText()得到文本并通过toString()转成字符串再通过trim()去除空格,得到String对象的输入密码: ②.通过SharedPreferences对象的getString(String key, String defValue)获得保存着的密码,参数

Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件

一.目标. 制作向导设置里面每一步的UI布局及点击事件控制. 1.使用自定义button背景.自定义组合控件.自定义文本样式等. 2.利用SharedPreferences对象,设置应用程序配置信息(向导设置完成后就不再进入)           二.代码实现. 1.在程序包下新建另外3个UI的类(分别为SetupWizard_ui_2.java.SetupWizard_ui_3.java.SetupWizard_ui_4.java),并在配置文件中注册Activity. 2.根据UI设计,在设

Android实例-手机安全卫士(十)-自定义对话框

一.目标. 当点击“手机防盗”时弹出自定义的设置密码对话框.如果已经设置密码,则弹出自定义的输入密码对话框. 二.代码实现. 1.在layout文件夹下新建xml(取名setpwddialog.xml)文件用于设置自定义对话框的UI. 新建xml文件代码如下; 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.a

Android实例-手机安全卫士(十四)-为密码进行MD5加密

一.目标. 将设置的密码通过MD5加密后再保存. 二.代码实现. 1.在自定义工具包(com.example.mobilesafe.ui)中新增一个类(取名MD5Utils).在新建类(MD5Utils)中新建一个返回值为String类型的public的静态方法(取名mD5Encryption),传入参数为String类型(password). 2.在新建的方法(md5Encryption)中: ①.通过消息摘要器对象(MessageDigest)的getInstance(String algo

Android实例-手机安全卫士(十五)-由主界面进入手机防盗界面

一.目标 1.在主界面中通过“设置防盗密码”或者“输入防盗密码”后,对话框消失,并进入”手机防盗界面“. 2.进入是”手机防盗界面“时,根据有无完成”手机防盗设置向导“的情况进入不同的界面.若未完成,则进入向导界面,若已完成,则进入防盗界面.          二.代码实现. 1.在程序包(com.example.mobilesafe)下新建两个Activity(分别取名SecurityActivity和SetupWizard),并在配置文件(AndroidManifest.xml)中完成注册.

Android实例-手机安全卫士(四十三)-自由移动自定义Toast位置

一.目标 实现自定义的Toast窗口在来电时可以自由移动至屏幕的任意位置,并保存该位置 二.代码实现 1.在“显示号码归属地”服务(ShowPhoneAddService)类中的自定义吐司(myToast)方法中,在窗口对象WindowManager.LayoutParams(params,该变量在后面的移动显示位置时需要用到,所以将其定义成服务类的成员变量)的便签(flag)属性里,需删除不可触摸属性(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)

Android实例-手机安全卫士(二十七)—读取联系人号码

一.目标 1.将“二十六”介绍的读取联系人的方法移植到项目中: 2.选取读取到的联系人条目,将其号码自动填入文本框中(通过Intent方式在Activity之间传递数据). 二.代码实现. 1.将读取联系人方法移植到项目中. ①.在主程序包(mobilesafe)下新建选择联系人类(SelectContactActivity),并在布局文件夹中(layout)新建”选择联系人“的布局文件(activity_select_contact.xml).布局文件各联系人信息采用ListView组件显示.

Android实例-手机安全卫士(三)-设计主页面UI

一.目标. 主界面UI如图所示: 方面是一个功能列表提示框(采用TextView),下面是功能列表(采用GridView). 二.代码实现. 1.在主界面布局文件(activity_home.xml)中增加组件.主界面布局文件(activity_home.xml)采用线性布局,上面一个TextView,根据UI设置相应属性:下面一个是GridView,通过android:numColumns属性设置该组件的列数,由于GridView还需要inflate单个布局文件,所以为其设置id. 主界面布局

Android实例-手机安全卫士(二十六)—获取手机内联系人信息

一.目标. 通过内容解析器获取手机联系人信息,并采用自定义的样式显示. 为了便于介绍和重复使用,重新建立一个”读取联系人“工程. 二.代码实现. 1.新建工程,取名为”读取联系人“.在布局文件(activity_main.xml)中,采用ListView组件(其ID为select_contact). 布局文件代码: 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmln