电 话:0
手 机:0
联系人:刘先生
E_mail:2074917417@qq.com
地 址:成都市金牛区
定制视图之创建BoxDrawingView视图的方法
Android自带了很多优秀的标准视图与组件,但有时为追求独特的应用视觉效果,我们仍需创建定制视图。 虽然定制视图种类繁多,但大致可以分为以下两大类别。
1、简单视图:简单视图内部也可以很复杂;之所以归为简单类别,是因为简单视图不包括子视图。而且,简单视图几乎总是会执行定制绘制。
2、聚合视图:聚合视图由其他视图对象组成。聚合视图通常管理着子视图,但不负责执行定制绘制。图形绘制任务都委托给了各个子视图。
3、创建定制视图所需的三大步骤如下:
(1)选择超类,对于简单定制视图而言,View是个空白画布,因此它作为超类最常见。对于聚合定制视图,我们应选择合适的超类布局,比如FrameLayout。
(2)继承选定的超类,并至少覆盖一个超类构造方法。
(3)覆盖其他关键方法,以定制视图行为。
今天,南昌APP制作开发公司小编为大家介绍一下定制视图中创建 BoxDrawingView视图的方法。
BoxDrawingView是个简单视图,同时也是View的直接子类。
以View为超类,新建BoxDrawingView类。在BoxDrawingView.java中,添加两个构造方法。具体操作如下代码所示。
初始的BoxDrawingView视图类(BoxDrawingView.java)
public class BoxDrawingView extends View {
// Used when creating the view in code
public BoxDrawingView(Context context) {
this(context, null);
}
// Used when inflating the view from XML
public BoxDrawingView(Context context, AttributeSet attrs) {
super(context, attrs);
}
}
这里之所以添加了两个构造方法,是因为视图可从代码或者布局文件实例化。从布局文件中实例化的视图可收到一个AttributeSet实例,该实例包含了XML布局文件中指定的XML属性。 即使不打算使用构造方法,按习惯做法也应添加它们。
有了定制视图类,我们来更新fragment_drag_and_draw.xml布局文件以使用它,具体做法如下代码所示。
在布局中添加BoxDrawingView(fragment_drag_and_draw.xml)
注意,我们必须使用BoxDrawingView的全路径类名,这样布局inflater才能够找到它。布局 inflater解析布局XML文件,并按视图定义创建View实例。如果元素名不是全路径类名,布局inflater 会转而在android.view和android.widget包中寻找目标。如果目标视图类放置在其他包中,布局inflater将无法找到目标并最终导致应用崩溃。
因此,对于android.view和android.widget包以外的定制视图类,必须指定它们的全路径类名。
运行DragAndDraw应用,一切正常的话,屏幕上会出现一个空视图,如下图所示。
未绘制的BoxDrawingView
接下来,让BoxDrawingView监听触摸事件,并实现在屏幕上绘制矩形框。
以上就是小编为大家介绍的关于在南昌APP开发中创建 BoxDrawingView视图的方法,其实方法很简单,估计大家看一遍就会了。不过如果还有哪些不太明白的地方也不用担心,可随时来电咨询网络,我们专业为您解答!
PS:所有作品版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!
Copyright © 20019-2023 荟萃信息网 版权所有 蜀ICP备16021156号-2
电 话:0 手 机:0 传 真: E-mail:2074917417@qq.com
地 址:成都市金牛区
技术支持:荟萃网络科技
扫码关注我们