`
jandroid
  • 浏览: 1939970 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android自定义View,View中的原点坐标相关问题

 
阅读更多

我们自定义了View,但是有没想过一个问题,就是View中的(0,0)坐标,也就是原点坐标在哪??我们是不是有时候很困惑,接下来我们就来研究View中的原点坐标相关的问题。

 

一、new HelloViewView的原点

我们通过从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

    }

}

0
1
分享到:
评论

相关推荐

    Android 自定义View简单拖拽效果

    在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有创意的交互体验。本教程将探讨如何创建一个简单的自定义View,实现类似于腾讯QQ中的红点拖动效果,但并不是完全复刻这一功能。我们将...

    Android自定义View的开发

    在Android中,View的坐标系统是从左上角开始的。`6.View原点--newView时.png`和`6.View原点--XML中布局时.png`可能解释了在不同情况下View的初始位置。在创建View时,以及在XML布局中,原点位置可能会有所不同,这...

    Android-一个小的坐标转化工具可以将坐标点或其他的点转化到自定义的view上面

    首先,Android中的坐标系统是基于左上角为原点的笛卡尔坐标系,X轴向右延伸,Y轴向下延伸。然而,在实际应用中,我们可能需要处理其他坐标系统,比如GPS坐标、地理坐标等,它们与Android视图系统的坐标不完全一致。 ...

    Android-Android自定义View之几何图形绘制

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特的视图组件。本主题聚焦于“Android自定义View之几何图形绘制”,特别是如何利用Android的Canvas API来构建维度图表,如模仿京东白...

    QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?

    在Qt库中,QGraphicsView和QGraphicsScene是用于创建高级图形用户界面的重要组件,尤其在需要进行自定义绘图和交互式图形显示时。QGraphicsView是窗口,它负责显示QGraphicsScene对象,而QGraphicsScene则可以视为一...

    android拖动控件,解决回到原点

    首先,我们要知道Android中的视图布局是由`LayoutParams`来控制的,它包含了视图在父容器中的位置和尺寸信息。当我们移动一个视图时,通常需要更新这个`LayoutParams`对象,并调用`requestLayout()`方法来通知父布局...

    AndroidAnimation-Android自定义View之星球运动.zip

    Android自定义View 星球运动在dribbble闲逛的时候发现的一个有意思的星球运动的动画,刚好最近时间尚可,就简单实现了一下中间运动的部分,又是因为时间的原因,开头位移的部分没有完成. 这是在dribbble中发现的动画 ...

    安卓自定义View:太极

    首先,让我们了解Android中的Canvas。Canvas是Android提供的2D图形绘制的基础,它提供了多种方法来在Bitmap或屏幕Surface上绘制线条、形状、文本和图像。在自定义View时,通常会在`onDraw()`方法中使用Canvas进行...

    基于android的自定义时钟

    在Android中,我们可以利用View或ViewGroup来构建自定义视图。对于一个自定义时钟,我们可能选择继承自View,并重写onDraw()方法来绘制时钟的各个部分,如时针、分针和秒针。`MyAnalogClock`很可能就是一个自定义...

    Android-《HenCoderAndroid开发进阶自定义View1-5绘制顺序》的练习项目

    在Android中,每个View的绘制过程主要包括测量(Measure)、布局(Layout)和绘制(Draw)三个阶段,通常称为“三部曲”。在这个项目中,开发者将学习如何控制这些阶段,以实现特定的绘制效果。 1. **测量(Measure)阶段**...

    Android自定义控件(实现状态提示图表)

    本文将深入探讨如何在Android中创建一个自定义控件,用于实现状态提示图表。这种图表能够动态显示数据,非常适合用来实时反馈应用程序的状态或者进度。 首先,我们要创建一个新的Java类,继承自Android的基础视图类...

    View坐标位置XY轴详解

    首先,我们要知道Android中的坐标系统是基于左上角为原点(0,0)的二维平面。X轴水平向右延伸,Y轴垂直向下延伸。这是与数学中的笛卡尔坐标系统相反的,因为在计算机图形学中,屏幕通常是朝向用户,因此向下是正方向。...

    Android应用源码之(添加自定义多边形).zip

    1. **自定义View**: 在Android中,如果系统提供的视图无法满足需求,我们可以创建自己的View类来扩展功能。这里可能创建了一个继承自`View`或`SurfaceView`的类,以实现多边形的绘制。 2. **Canvas与Paint**: ...

    android 画一个自定义的二维虚线坐标

    在Android开发中,有时我们需要为应用创建自定义的视图以满足特定的界面需求,比如绘制二维虚线坐标。这个自定义的二维虚线坐标视图可以用于展示数据图表,帮助用户直观理解各种数值关系。下面我们将深入探讨如何...

    android自定义折线图

    在Android开发中,自定义视图是实现特定图形或交互效果的重要手段,而自定义折线图就是其中一种常见的需求。折线图是一种直观的数据可视化工具,常用于展示数据趋势和变化。本教程将深入探讨如何在Android平台上实现...

    自定义View画曲线,加缩放功能

    Android中的Canvas坐标系统默认左上角为(0, 0),向右和向下移动分别代表x轴正方向和y轴正方向。为了以日期为横轴,数值为纵轴,可能需要自定义坐标系统,调整原点位置和轴的方向。 5. **数据处理**: 首先,你...

    Android自定义View实现圆形环绕效果

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本篇文章将深入探讨如何实现一个自定义View,该View能够展示一个圆形头像,并在其周围环绕一系列小图标,形成...

    自定义绘制五边形雷达图(类似芝麻信用分数)

    在Android中,自定义View需要继承`View`类或者其子类,如`ViewGroup`。我们需要重写`onDraw()`方法,该方法会在View需要绘制时被调用。在这个方法中,我们将使用`Canvas`对象进行图形绘制。 2. **坐标系统**: ...

    模仿Android实现自定义钟表界面

    这个项目“模仿Android实现自定义钟表界面”旨在教你如何利用Android SDK中的绘图API和自定义View来构建一个功能齐全且视觉上吸引人的时钟应用。 1. **自定义View基础** 自定义View是Android UI系统的一部分,它...

Global site tag (gtag.js) - Google Analytics