控件

CSharp加快自定义控件的绘制

半世苍凉 提交于 2019-12-05 15:04:15
前两天由于需要用CSharp做一个控件,就翻看了以前做控件里自己的代码。不看不知道,看了才知道以前自己写的控件糟糕到什么程度! 自定义一个控件需要继承CSharp提供的一个专门的用户控件类UserControl,我们使用自己的控件基本上或者说必须重载一下onPaint方法了,以前的代码就是将绘制控件所需要的逻辑都写在onPaint方法里了,如果绘图量比较小的话还可以接受,但是稍微复杂一点的控件这样做的弊端就出来了!这里会将导致整个窗体的刷新拖慢从而使界面不流畅! 不清楚CSharp控件的新手容易犯这个错误,将onPaint变得极其庞大。大家都知道,内存与内存之间传递数据很快,但是内存与显存之间交换数据相较于内存与内存之间速度就会很慢了,不知道.NET对这一部分是如何优化的,但是直接在onPaint里每次调用Graphics的绘制方法直接操作显存(姑且这么说),将数据一小段地从内存中传递到显存中这个速度是很慢的。 所以假如的代码是这样的 protected override void onPaint(...) { e.g.draw...(); ... ... e.g.draw...(); ... ... } 那么建议改掉它! 我目前所做的控件里的onPaint是这样的 protected override void onPaint(...) { base.onPaint(e); e

EditText属性及使用

扶醉桌前 提交于 2019-12-05 05:30:53
EditText常见属性: 属性 功能 android:hint="提示信息" 设置显示在控件上的提示信息 android:numeric="integer" 设置只能显示数字,integer:整数;decimal:小数 android:singleLine="true" 单行输入,设置为true时文字不会自动换行 android:password="true" 设置只能输入密码 android:textColor = "#ff8c00" 字体颜色 android:textStyle="bold" 设置字体,主要有bold, italic android:capitalize = "characters" 设置英文字母大写类型,sentences仅第一个字母大写,words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写。 android:textColorHighlight="#cccccc" 被选中文字的底色,默认为蓝色 android:textColorHint="#ffff00" 设置提示信息文字的颜色,默认为灰色 android:textScaleX="1.5" 控制字与字之间的间距 android:background="@null" 空间背景,这里没有,指透明 android:textAppearance="?android:attr

DevExpress 控件使用笔记

北城余情 提交于 2019-12-04 08:51:36
这段时间一直在研究DevExpress控件库,本文是我对DevExpress工具箱中分类“DX.13.1: Common Controls”下控件的使用笔记。这个类型的控件都在DevExpress.XtraEditors.v13.1.dll中定义。 分类“DX.13.1: Common Controls”下控件列表如下: 针对以上控件,我选了一些做了笔记,内容如下: 1)ColorPickEdit,颜色选择控件,类似VS中控件属性管理器中的颜色选择工具,包括自定义、Web、系统三种选择方式。自定义中还可以根据RGB、HSL、HSV三种方式指定具体颜色。 参考链接: http://my.oschina.net/Tsybius2014/blog/518168 2)PopupGalleryEdit,可分租下拉菜单,下拉菜单中的内容被分为若干栏目,各栏目下的元素以图表形式展示。 参考链接: http://my.oschina.net/Tsybius2014/blog/518236 3)BarCodeControl,条形码展示控件,支持共计25种不同的条形码(和二维码)的计算与显示。 参考链接: http://my.oschina.net/Tsybius2014/blog/518274 4)ButtonEdit,带按钮的输入框,按钮被放置在输入框的最右侧。 参考链接: http://my

android--------自定义控件 之 基本流程篇

ぃ、小莉子 提交于 2019-12-04 07:10:02
在我们平常的Android开发中经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件 自定义控件可以设计出很多你想要的功能和模块,在开发中是很重要的一部分。 自定义View的价值 能够做到基础控件无法做到的效果,为应用的表现增色; 在多个应用并行开发的团队,将公用的交互效果提取成自定义控件,方便复用,减少不必要的重复劳动; 将控件的内部逻辑封装在自定义View中,便于应用内解耦; 流程图: 自定义控件两种方式: 1. 继承ViewGroup 自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承自ViewGroup或各种Layout,包含有子View。 例如:ViewGroup、LinearLayout、FrameLayout、RelativeLayout等。 2. 继承View 在没有现成的View,需要自己实现的时候,就使用自定义View,一般继承自View,SurfaceView或其他的View,不包含子View。 例如:View、TextView、ImageView、Button等。 View的三大核心方法onMeasure、onLayout、onDraw onMeasure: 用于测量视图的大小; onLayout: 用于给视图进行布局; onDraw: 用于对视图进行绘制;

android--------自定义控件 之 属性篇

白昼怎懂夜的黑 提交于 2019-12-03 04:43:18
上篇介绍了自定义控件的一个简单案例,本篇文章主要介绍如何给自定义控件自定义一些属性。 Android 中使用自定义属性的一般步骤: 定义declare-styleable,添加attr 使用TypedArray获取自定义属性 设置到View上 自定义属性都存在于/value/attr.xml文件中,以如下格式存在 <resource> <declare-styleable name="自定义属性名称"> <attr name="属性名称" format="属性种类"/> ...... </declare-styleable> </resource> format属性值: reference:引用资源 string:字符串 Color:颜色 boolean:布尔值 dimension:尺寸值 float:浮点型 integer:整型 fraction:百分数 enum:枚举类型 flag:位或运算 代码说话: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CircularAttrsView"> <!--圆形绘制的位置--> <attr name="circular_circle_gravity"> <flag name="left" value="0"/> <flag name=

android--------自定义控件 之 基本实现篇

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 04:43:05
前面简单的讲述了Android中自定义控件中的几个方法,今天通过代码来实现一个简单的案例 自定义一个扇形图 自定义控件示例: 这里先介绍继承View的方式为例 public class CircularView extends View { /**** * 有三个参数的构造函数中第三个参数是默认的Style, * 这里的默认的Style是指它在当前Application或Activity所用的Theme中的默认Style,且只有在明确调用的时候才会生效, */ private final static String TAG = CircularView.class.getName(); private Paint mPaint; private RectF oval; public CircularView(Context context) { super(context); init(); } public CircularView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CircularView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs,

Android必备:Android UI控件的了解与学习

时光怂恿深爱的人放手 提交于 2019-11-27 13:47:16
看这里: Android必备:Android UI控件的了解与学习 由于工作需要,最近一段时间,需要进行Android App开发的学习,之前简单的进行过Android的了解,对于基本的Android环境的搭建等已经有过整理,一个Android App是由一个或多个Activity组成,每一个Activity都是一个UI容器,也就是一个屏幕界面,一个界面的组成则是由一组Android UI控件组成,本篇,我们就来简单的对Android UI控件进行初步的了解和学习。 Android UI控件根据其作用,大致可以分为两种:视图控件和布局控件。首先我们来了解一下视图控件。 在App的开发中,一个视图控件在屏幕上占据一定的区域空间,通过Android提供的api,我们可以管理和空间这片区域的显示,以及处理这片区域发生的事件。比如Button(按钮)、TextView(文字框)、EditText(编辑框)、List(列表)、CheckBox(复选框)、RadioButton(单选框)等,这些视图控件都是继承自View类,它们都属于 Android应用程序组成 中的Widget。 View可以放在ViewGroup中,由ViewGroup进行布局的管理,实现ViewGroup的类即为布局控件,在Android中布局通常有以下几种不同的情况(以下内容引自 Android应用开发入门教程 ):