我们自定义了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是一项重要的技能,它允许开发者创造出独特且富有创意的交互体验。本教程将探讨如何创建一个简单的自定义View,实现类似于腾讯QQ中的红点拖动效果,但并不是完全复刻这一功能。我们将...
在Android中,View的坐标系统是从左上角开始的。`6.View原点--newView时.png`和`6.View原点--XML中布局时.png`可能解释了在不同情况下View的初始位置。在创建View时,以及在XML布局中,原点位置可能会有所不同,这...
首先,Android中的坐标系统是基于左上角为原点的笛卡尔坐标系,X轴向右延伸,Y轴向下延伸。然而,在实际应用中,我们可能需要处理其他坐标系统,比如GPS坐标、地理坐标等,它们与Android视图系统的坐标不完全一致。 ...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特的视图组件。本主题聚焦于“Android自定义View之几何图形绘制”,特别是如何利用Android的Canvas API来构建维度图表,如模仿京东白...
在Qt库中,QGraphicsView和QGraphicsScene是用于创建高级图形用户界面的重要组件,尤其在需要进行自定义绘图和交互式图形显示时。QGraphicsView是窗口,它负责显示QGraphicsScene对象,而QGraphicsScene则可以视为一...
首先,我们要知道Android中的视图布局是由`LayoutParams`来控制的,它包含了视图在父容器中的位置和尺寸信息。当我们移动一个视图时,通常需要更新这个`LayoutParams`对象,并调用`requestLayout()`方法来通知父布局...
Android自定义View 星球运动在dribbble闲逛的时候发现的一个有意思的星球运动的动画,刚好最近时间尚可,就简单实现了一下中间运动的部分,又是因为时间的原因,开头位移的部分没有完成. 这是在dribbble中发现的动画 ...
首先,让我们了解Android中的Canvas。Canvas是Android提供的2D图形绘制的基础,它提供了多种方法来在Bitmap或屏幕Surface上绘制线条、形状、文本和图像。在自定义View时,通常会在`onDraw()`方法中使用Canvas进行...
在Android中,我们可以利用View或ViewGroup来构建自定义视图。对于一个自定义时钟,我们可能选择继承自View,并重写onDraw()方法来绘制时钟的各个部分,如时针、分针和秒针。`MyAnalogClock`很可能就是一个自定义...
在Android中,每个View的绘制过程主要包括测量(Measure)、布局(Layout)和绘制(Draw)三个阶段,通常称为“三部曲”。在这个项目中,开发者将学习如何控制这些阶段,以实现特定的绘制效果。 1. **测量(Measure)阶段**...
本文将深入探讨如何在Android中创建一个自定义控件,用于实现状态提示图表。这种图表能够动态显示数据,非常适合用来实时反馈应用程序的状态或者进度。 首先,我们要创建一个新的Java类,继承自Android的基础视图类...
首先,我们要知道Android中的坐标系统是基于左上角为原点(0,0)的二维平面。X轴水平向右延伸,Y轴垂直向下延伸。这是与数学中的笛卡尔坐标系统相反的,因为在计算机图形学中,屏幕通常是朝向用户,因此向下是正方向。...
1. **自定义View**: 在Android中,如果系统提供的视图无法满足需求,我们可以创建自己的View类来扩展功能。这里可能创建了一个继承自`View`或`SurfaceView`的类,以实现多边形的绘制。 2. **Canvas与Paint**: ...
在Android开发中,有时我们需要为应用创建自定义的视图以满足特定的界面需求,比如绘制二维虚线坐标。这个自定义的二维虚线坐标视图可以用于展示数据图表,帮助用户直观理解各种数值关系。下面我们将深入探讨如何...
在Android开发中,自定义视图是实现特定图形或交互效果的重要手段,而自定义折线图就是其中一种常见的需求。折线图是一种直观的数据可视化工具,常用于展示数据趋势和变化。本教程将深入探讨如何在Android平台上实现...
Android中的Canvas坐标系统默认左上角为(0, 0),向右和向下移动分别代表x轴正方向和y轴正方向。为了以日期为横轴,数值为纵轴,可能需要自定义坐标系统,调整原点位置和轴的方向。 5. **数据处理**: 首先,你...
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本篇文章将深入探讨如何实现一个自定义View,该View能够展示一个圆形头像,并在其周围环绕一系列小图标,形成...
在Android中,自定义View需要继承`View`类或者其子类,如`ViewGroup`。我们需要重写`onDraw()`方法,该方法会在View需要绘制时被调用。在这个方法中,我们将使用`Canvas`对象进行图形绘制。 2. **坐标系统**: ...
这个项目“模仿Android实现自定义钟表界面”旨在教你如何利用Android SDK中的绘图API和自定义View来构建一个功能齐全且视觉上吸引人的时钟应用。 1. **自定义View基础** 自定义View是Android UI系统的一部分,它...