- 浏览: 7342952 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
package com.easyway.widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.ImageView; /** * * * @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company:易程科技股份有限公司 * @Date:2012-8-17 * @author longgangbai * @version 1.0 */ public class Switch extends ImageView { private static final String TAG = "Switch"; private static final int TEXT_SIZE = 12; private OnCheckedChangeListener mOnCheckedChangeListener; private boolean mChecked; private Paint mPaint; private String mCheckedString, mUnCheckedString; public interface OnCheckedChangeListener { public void onCheckedChanged(Switch switchView, boolean isChecked); } public Switch(Context context) { this(context, null); } public Switch(Context context, AttributeSet attrs) { this(context, attrs, 0); } public Switch(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // init desity dpi,之前引用屏幕密度的时候出现问题,去掉密度,按实际的宽和高的比例来设置文字的位置 // DisplayMetrics metric = new DisplayMetrics(); // WindowManager windowManager = (WindowManager) context // .getSystemService(Context.WINDOW_SERVICE); // windowManager.getDefaultDisplay().getMetrics(metric); // mDensity = metric.density; mCheckedString = context.getResources().getString(R.string.switch_on);//业务功能开启时的图片显示文字字符串:即ON mUnCheckedString = context.getResources().getString(R.string.switch_off);//OFF setBackgroundResource(R.drawable.white_btn);//设置开关按钮的背景 setChecked(false);//初始化控件为关的状态 configPaint();//设置画布属性(去掉密度,直接以字体12显示) // computePosition(); } // private void computePosition() { // mLeftTextX = LEFT_STATE_STRING_MARGIN_LEFT * mDensity; // mRightTextX = RIGHT_STATE_STRING_MARGIN_LEFT * mDensity; // mTextY = STRING_MARGIN_TOP * mDensity; //modify by chengxi // mLeftTextX = getWidth()/2/3 * mDensity; // mRightTextX =getWidth()/2* mDensity; // mTextY = STRING_MARGIN_TOP * mDensity; // } private void configPaint() { mPaint = new Paint(); mPaint.setAntiAlias(true);//去文字锯齿 // mPaint.setTextSize(TEXT_SIZE * mDensity); mPaint.setTextSize(TEXT_SIZE); mPaint.setColor(Color.WHITE);//画布背景即文字字体的颜色 } public void setChecked(boolean checked) { mChecked = checked; if (mChecked) { setImageResource(R.drawable.on_btn); } else { setImageResource(R.drawable.off_btn); } postInvalidate(); //见http://blog.csdn.net/sdhjob/article/details/6512973 //View的invalidate和postInvalidate都是更新界面,不同的是 //invalidate与创建VIEW都是在同一个线程中执行的,即主线程,如果在非主线程中执行的话需要配合Handler使用 //而postInvalidate可以在非主线程中更新UI界面 } public boolean isChecked() { return mChecked; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mChecked) { // draw checked // canvas.drawText(mCheckedString, (getWidth()*0.6f), getHeight()*0.7f, mPaint); } else { // draw unchecked // canvas.drawText(mUnCheckedString, getWidth()*0.1f , getHeight()*0.7f, mPaint); } //画VIEW的时候开始画的点(0,0)是在左上角,图片从左上往下画,画文字的时候开始画的点是在左下角,文字从左下往上画 } @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_UP: setChecked(!mChecked); if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(this, mChecked); } break; default: // Do nothing break; } return true; } public void setOnCheckedChangeListener(OnCheckedChangeListener listener) { mOnCheckedChangeListener = listener; } }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" android:id="@+id/dialog"> <com.easyway.widget.Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/white_btn" /> <TextView android:layout_width="wrap_content" android:layout_height="12sp" /> <com.easyway.widget.Switch android:id="@+id/switch2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/white_btn" /> </LinearLayout>
代码如下:
- SwitchWidget.zip (99.8 KB)
- 下载次数: 179
发表评论
-
[转]年度最实用50款免费Android应用推荐
2012-11-08 16:39 3380据国外媒体报道,有人说Android应用市场比iPhone应用 ... -
GIS的学习(四十五)【转】Integration of the MBTiles format on Android
2012-10-22 17:13 2950转载自 http:/ ... -
GIS的学习(四十四)osmdroid sdcard检查
2012-10-15 16:12 2341在许多应用中使用到sdcard的检查,在osmdro ... -
GIS的学习(四十三)osmdroid基于几个经典代理类
2012-10-15 16:06 2633在osmdroid中给基于位置的代理类如下: pack ... -
Android中PopupWindow的用法(位置、动画、焦点)
2012-10-12 14:12 11523在Android中有很多级别的Window,不同级别的Wind ... -
【转】Android根据分辨率进行单位转换-(dp,sp转像素px)
2012-10-11 09:18 27136Android系统中,默认的单位是像素(px)。也就是说,在没 ... -
GIS的学习(二十九)Osmdroid 离线地图存放位置的研究和详细分析
2012-09-23 11:49 11559在手机通过osmdroid调用离线地图必须放在 ... -
GIS的学习(二十八)Osmdroid相关的开源项目
2012-09-23 11:31 25438osm 数据格式(openstreet map)与Ro ... -
GIS的学习(二十七)通过geoserver的georss访问第三方地图
2012-09-23 00:34 3603在geoserver中如果想调用第三方地图可以采 ... -
android中使用 定时更新界面定时器Timer的使用
2012-09-22 22:09 25526handler的使用 一、Handler的定义: ... -
【转】Android应用程序的自动更新升级(自身升级、通过tomcat) .
2012-09-16 15:03 7366http://blog.csdn.net/mu0206mu/a ... -
GIS的学习(二十七)OGC 的WCS WFS 及WMS 服务
2012-09-11 22:22 12128http://www.gisall.com/?6678/v ... -
GIS的学习(二十六)geotools 使用 部分代码总结
2012-09-11 22:20 5732前段时间的一个项目 本来用ae完成了种种的 查询,空间分析等等 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9710官方geoserver中WMS服务中几种操作的API的详细说明 ... -
GIS的学习(二十四)android异步调用geoserver wms中的地图
2012-09-10 17:38 8173在geoserver的客户端通过wms的GetMap实现 ... -
GIS的学习(二十三)geoserver中CQL和ECQL的使用
2012-09-10 16:29 6640以下引用自官方文档: CQL and ECQL¶ CQ ... -
GIS的学习(二十二)osmdroid中添加縮放控件
2012-09-06 23:09 2788package com.geoserver.osmdroid; ... -
GIS的学习(二十一)在osmdroid 地图中添加marker 并添加事件
2012-09-06 22:27 6637我有 osmdroid,overlayswithf ... -
GIS的学习(二十)基于Geoserver的WFS服务与Openlayers实现地理查询
2012-08-30 18:48 11410基于Geoserver发布的wfs服务,与Openlayers ... -
GIS的学习(十九)Geoserver使用添加,删除,查询地图中的POI
2012-08-30 17:28 10358在geoserver自定义的地图中通过geoserver ...
相关推荐
我们将从以下几个方面来详细讲解这个自定义Switch控件: 1. **基础理解**:Switch控件在Android中是ToggleButton的升级版,它提供了开/关两种状态,并且外观类似开关。原生的Switch控件允许开发者通过textOn和...
要自定义Switch控件,我们需要创建一个新的View类,继承自Android的CompoundButton。CompoundButton是CheckBox和RadioButton的父类,它提供了一个可以绑定任意boolean值的接口。我们可以通过重写它的onDraw()方法...
自定义switch控件源码,支持文字、图标形式的开关
自定义Switch控件可以让我们根据项目需求实现更个性化、更美观的效果。本篇文章将详细探讨如何在Android中实现一个全版本通用的自定义Switch控件。 1. **基础概念** Switch控件是Android提供的一个ToggleButton的...
NKColorSwitch, iOS的可以自定义平面样式 switch 控件 NKColorSwitchiOS的平面样式UISwitch控件。支持可以自定义的控制颜色,大小和形状。 需要 iOS 5 和 arc 。安装将NKColorSwitch文件夹添加到项目中并导入" ...
在Android开发中,Switch控件是一种常用的...在实际项目中,自定义Switch控件能够提升应用的视觉吸引力,并增强用户操作的感知。在进行自定义时,应兼顾功能性和美观性,确保在各种屏幕尺寸和分辨率下都能正常工作。
在Android开发中,Switch控件是一种非常常用的开关组件,它结合了CheckBox的功能和ToggleButton的视觉效果,可以...通过实践这些技巧,你将能够创建出符合自己应用风格的自定义Switch控件,并实现与系统功能的交互。
文件名"SlieSwitch"可能是自定义Switch控件的Java源代码文件。在这个文件中,你可以看到类定义、构造函数、属性声明、绘制方法(如onDraw())、触摸事件处理(如onTouchEvent())以及其他自定义功能的实现。为了使...
这就需要我们自定义Switch控件。自定义通常涉及以下几个方面: 1. **外观定制**:可以使用自定义视图或者使用系统提供的`appearance` API来改变Switch的颜色、大小、背景等。 2. **动画效果**:通过实现`UIView`的...
这个名为“ios-自定义Switch.zip”的压缩包文件提供了一个名为“LCESwitch”的自定义开关控件。`LCESwitch`可能是作者为了实现特定功能或视觉效果而设计的。下面我们将深入探讨如何在iOS中自定义`Switch`以及可能...
在Windows Presentation Foundation (WPF) 中,自定义控件能够帮助开发者实现独特的用户界面和交互体验。本项目“WpfToggleSwitch”就是这样一个例子,它是一个从国外开源网站获取的优秀自定义控件,用于创建类似iOS...
在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。"android之自定义开关控件"这个主题旨在教你如何在Android平台上创建一个类似苹果iOS Toggle的自定义开关组件。以下是对这个主题的详细讲解...
首先,Android原生的Switch控件是系统提供的开关选择器,它通常用于二选一的选择,例如开启或关闭某个功能。原生的Switch控件已经具备了基础的交互和视觉效果,但在某些场景下,我们可能需要更个性化的外观来匹配...
本示例中的"Switch"是一个自定义版本的开关按钮,它模仿了原生Android SDK中的`SwitchCompat`或者`android.widget.Switch`控件,但可能包含了开发者个人的优化或者特色功能。以下是对这个自定义控件Switch的知识点...
自定义Switch控件的主要工作包括以下几个方面: 1. **绘制背景**:在onDraw()方法中,使用Canvas绘制开关的背景,包括滑块和开关轨道。通常需要考虑不同状态下的背景颜色,如开/关状态、是否被触摸等。 2. **绘制...
在Android开发中,`Switch`控件是一种常用的开关选择器,它在用户界面中用于切换两种状态,通常表现为开和关。然而,Android系统自带的`Switch`控件可能无法满足开发者的所有需求,比如样式、动画效果或者交互方式等...
这篇博客“仿android4.0 switch控件”可能探讨了如何在更早或自定义版本的Android系统上实现与Android 4.0相似的Switch效果。 首先,我们来了解下原生Android 4.0 Switch控件的特点: 1. **设计风格**:Android 4.0...