1. 程式人生 > >Android 煩人的座標原點

Android 煩人的座標原點

[android] <wbr>“座標”相關的一些故事 <wbr>*Q*

螢幕的左上角是系統座標原點(0,0),包括標題欄,通知欄高度。

getTop:獲取到的,是view自身的頂邊到其父佈局頂邊的距離

getLeft:獲取到的,是view自身的左邊到其父佈局左邊的距離

getRight:獲取到的,是view自身的右邊到其父佈局左邊的距離

getBottom:獲取到的,是view自身的底邊到其父佈局頂邊的距離

getX():獲取點選事件相對控制元件左邊的x軸座標,即點選事件距離控制元件左邊的距離

getY():獲取點選事件相對控制元件頂邊的y軸座標,即點選事件距離控制元件頂邊的距離

getRawX():獲取點選事件相對整個螢幕左邊的x軸座標,即點選事件距離整個螢幕左邊的距離

getRawY():獲取點選事件相對整個螢幕頂邊的y軸座標,即點選事件距離整個螢幕頂邊的距離。系統座標原點。

c.getLocationInWindow():座標原點在B

c.getLocationOnScreen():座標原點在A,系統座標原點。

一、new HelloViewView的原點:

/**

*初始化繪製線的畫筆

**/

publicvoid initLinePaint(){

linePaint = new Paint();

// 設定畫筆

linePaint.setColor(Color.GREEN);

linePaint.setAntiAlias(

true);

linePaint.setStrokeWidth(5);// 設定線寬

}

/**

*繪製View

**/

protectedvoid 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);

}

     執行:

              

二、使用XML中佈局檔案時的View原點:

/**

*使用自定義的View

**/

publicclass MainActivity extends Activity {

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);// 使用自定義的View

}

}

這裡直接給出執行結果圖: