我们自定义了View,但是有没想过一个问题,就是View中的(0,0)坐标,也就是原点坐标在哪??我们是不是有时候很困惑,接下来我们就来研究View中的原点坐标相关的问题。
一、new HelloView时View的原点
我们通过从View中绘制一条从原点到右下角的线来看看这个View中的原点和这个View的宽和高。这里我们从onDraw(Canvas canvas)中绘制,下面给出核心代码。
HelloView.java
/**
* 初始化绘制线的画笔
* */
public void initLinePaint(){
linePaint = new Paint();
// 设置画笔
linePaint.setColor(Color.GREEN);
linePaint.setAntiAlias(true);
linePaint.setStrokeWidth(5); // 设置线宽
}
/**
* 绘制View
* */
protected void onDraw(Canvas canvas){
Log.v("onDraw(Canvas canvas)","" + this.getHeight()+ " " + this.getWidth());
canvas.drawColor(Color.WHITE);
initLinePaint(); // 初始化画笔
myUseBitmapFactory(canvas);
canvas.drawLine(0, 0, this.getWidth(), this.getHeight(), linePaint);
}
|
运行:
通过观察发现,View大小是从使用继承View的那个Label下开始
计算的,也就是这个View原点是在Label的左下角开始,到屏幕的右下角结束。
自己多试试,呵呵。
二、使用XML中布局文件时的View原点。
修改布局:
MainActivity.java
/**
* 使用自定义的View
* */
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);// 使用自定义的View
}
}
|
分享到:
相关推荐
Android自定义View 星球运动在dribbble闲逛的时候发现的一个有意思的星球运动的动画,刚好最近时间尚可,就简单实现了一下中间运动的部分,又是因为时间的原因,开头位移的部分没有完成. 这是在dribbble中发现的动画 ...
在很多开发中,为了界面更加的友好,在自定义View的基础上,开发者会开发出各种各样的自定义控件来满足实际开发需要,其中有一种”方向盘”的控件在实际开发中非常常见,便于用户进行一些实际性的方向控制。...
View:Android中所有控件的基类。单个控件或多个控件组成的一组控件。 ViewGroup:控件组,包含多个控件。ViewGroup内部可以有子View,子View还可以是ViewGroup。 View树结构类似于Web前端DOM树 部分继承关系:(见图...
在Android中,将屏幕的最左上角顶点作为Android坐标系的原点 从原点向右是X轴的正方向,从原点向下是Y轴的正方向 View提供了getLocationOnScreen( int[] location)方法来获取在整个屏幕内的绝对坐标,该坐标值为...
应用: QGraphicsView pyqtSignal,QPoint,Qt ... self.setWindowTitle("Demo8_5, View/Scene/Item关系和坐标变换") font=self.font() font.setPointSize(11) self.setFont(font) centralWidget =QWidget
2.更改类中的常量即可改变坐标位置,原点位置等 3.view中未设置切换线条的选择器,默认一条线,请在调用view时自行添加逻辑 upPointList,downPointList存放点,currentLinePaintNum改变画笔方案 (ps:修改代码可以...
1、坐标系:描述了View在屏幕中的位置关系(以屏幕最左上角的顶点作为Android坐标系的原点) 2、视图坐标系:描述了子视图在父视图中的位置关系(以父视图最左上角为坐标系原点) 获取坐标值的方法 1.View提供的...
在Android中想要实现实现滑动有很多方法,这篇博客将提供一些实现滑动的思路,希望可以帮助到有需要的人。 一、Android坐标体系 在讲解滑动之前,我们有必要简单提一下Android的坐标体系,因为滑动的实质就是坐标的...
Android用Animation实现完整的向上抛物线效果,通过计算Animation动画坐标,实现以固定View为原点的完整向上抛物线,现实类似太阳东升西落的动画。
getRawX: 获取当前控件相对于屏幕原点坐标 getX: 获取当前控件相对于父控件坐标 ##MotionEvent.getX(): 获取按下点相对于屏幕原点坐标 MotionEvent.getY(); ## getScrollY(): 里面内容相对于父控件移动距离...
摄像机/观察空间(Camera/View Space)的时候,是在讨论以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标。 我们在构造摄像机类的时候。着重强调...
Coordinates 设置坐标系,可以将坐标系原点移到到当前选取的点的位置。还可以旋转坐标系。在取截面或者局部由面旋转成体的时候比较有用 Lines 生成线。如果生成的线闭合,则Covered选项可选,选择后生成以闭合线为...
注意:该子程序中不能使用上下文相关指令!!! V5.4.22 对控制卡脉冲溢出错误进行了更为严格的检查,并且改进了算法以避免其发生 当某种原因导致控制卡停止发送中断,驱动程序试图恢复 修改了现有的参数完整性检查...
注意:该子程序中不能使用上下文相关指令!!! V5.4.22 对控制卡脉冲溢出错误进行了更为严格的检查,并且改进了算法以避免其发生 当某种原因导致控制卡停止发送中断,驱动程序试图恢复 修改了现有的参数完整性检查...
二维中我们使用的x-y坐标系,三维中我们需要重点关注的是x-z坐标系。注意这一点,摄像机默认是向着(0,0,-1)看的。设需要旋转的角度为rotateAngle1,摄像机的位置位CameraPos,那么有这样的公式: rotateAngle1 =...
viewBox属性是用于指定用户SVG图像的坐标系统的原点以及尺寸的。所有在SVG内绘制的内容都是相对于这个坐标系统完成的。因为SVG画布在所有方向都是无限延长的,你甚至可以在这个坐标系统的边界之外的地方绘制图形;...
10.12 更多不同的View类 231 第11章 文档视图模式与MFC Application Wizard 238 11.1 SDI项目 238 第12章 控件 248 12.1 静态类 248 12.2 按钮 251 12.3 滚动条CScrollBar 267 12.3.1 CScrollBar::Create() ...