Android实例-手机安全卫士(四十)-自定义吐司(二)(布局样式、背景)

一、

  自定义Toast的布局、背景等

二、代码实现

  1、在res文件夹下的layout文件夹中新建布局文件(Android xml file,取名phone_add_toast),用于定义要显示的Toast的布局方式;

  2、根据设计要求自定义的Toast布局为左右的水平线性布局,宽高均为包裹内容,左边为图片,右边为归属地信息文本(由于归属地信息会根据号码不同而改变,因此可为其设置id(tv_phone_add_toast));

    (1)图片采用<ImageView>组件,通过android:src属性加载图片资源,宽高均为包裹内容;

    (2)文本采用<TextView>组件,宽高均为包裹内容,设置其id(tv_phone_add_toast)。

自定义的Toast布局文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal"
 6     android:gravity="center_vertical">
 7
 8     <ImageView
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:src="@android:drawable/ic_menu_search" />
12
13     <TextView
14         android:id="@+id/tv_phone_add_toast"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:text="号码归属地"/>
18
19 </LinearLayout>

  3、在“显示号码归属地”服务类(ShowPhoneAddService)中定义一个View对象的成员变量(取名view),用于加载布局,(为防止重名,修改原来的TextView对象名称为toast_phone_add);

  4、在自定义Toast方法中,删去或注释创建窗口参数WindowManager.LayoutParams对象前的有关view的语句。

    (1)通过View对象(view)的inflate(Context context, int resource, ViewGroup root)方法将2中定义的Toast布局文件加载至View对象中,参数context为上下文(此处是this),resource为需要加载的布局文件资源id,root为父容器(此处为null);

    (2)通过View对象(view)的setBackgroundResource(int resid)、setBackgroundColor(int color)等方法加载背景图片、背景颜色等属性,优化UI;

    (3)显示归属地信息的TextView对象(toast_phone_add)通过View对象(view)的findViewById(int id)方法找到自定义Toast布局文件中的TextView组件,并强转;

    (4)通过TextView对象(toast_phone_add)的setText(CharSequence text)将传入自定义Toast方法的String类型参数(phoneAdd)加载上去。

Toast方法中加载自定义布局和相关设置的代码:

1 view = View.inflate(this, R.layout.phone_add_toast, null);
2         view.setBackgroundColor(Color.BLUE);
3         toast_phone_add = (TextView) view.findViewById(R.id.tv_phone_add_toast);
4         toast_phone_add.setText(phoneAdd);    

时间: 2024-09-29 01:06:05

Android实例-手机安全卫士(四十)-自定义吐司(二)(布局样式、背景)的相关文章

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.为按钮设置点击事件,主要介绍“确认”按钮的点击事件. ①.通过TextView对象的getText()得到文本并通过toString()转成字符串再通过trim()去除空格,得到String对象的输入密码: ②.通过SharedPreferences对象的getString(String key, String defValue)获得保存着的密码,参数

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

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

Android实例-手机安全卫士(四十二)-设置自定义Toast位置

一.目标 设置自定义Toast窗口的显示位置(第1-2步): 二.代码实现 1.在“显示号码归属地”服务(ShowPhoneAddService)类中的自定义吐司(myToast)方法中,通过窗口对象WindowManager.LayoutParams(params)的gravity属性可设置自定义Toast的对齐方式(顶部:Gravity.TOP,左上角:Gravity.TOP+Gravity.LEFT): 2.通过窗口对象WindowManager.LayoutParams(params)的

Android实例-手机安全卫士(三十九)-自定义吐司(文本格式、显示窗口)

一.目标 自定义显示的吐司,包括内容文本格式.显示窗口格式. 二.代码实现 1.在“显示号码归属地”服务类(ShowPhoneAddService)中自定义吐司方法(取名myToast(String sting)),参数string为需要显示的字符串(注:本例中只需要使用自定义的吐司来显示号码归属地,其他地方不使用,因此在类中创建方法).在自定义方法中(myToast): (1)通过new TextView(Context context)方法定义一个TextView对象(取名view),参数c

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

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

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

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