參考地址 http://byandby.iteye.com/blog/826230android
前兩天在博客發了在例子 android Canvas類介紹 http://byandby.iteye.com/blog/825330 建議你們 點進去 看一看 否則下邊沒辦法 繼續啊。 我仍是把這個例子的代碼貼出來 你們一塊兒看看吧。 canvas
不知道你們看完這個例子 有沒有 有一些疑問?首先跟你們說明一下 這裏 這個post
方法 咱們都知道它是旋轉畫布 這裏提示一下 它是順時針旋轉。 其實個人疑問就是 下邊這2句代碼
this
我對它們的參數有些疑問 我不知道 android 它是怎麼在一個 Canvas對象上 繪製出一個矩形?new Rect(150,75,260,120)裏邊這些參數 的數字指明瞭什麼那些值?android 繪製一個矩形以哪裏爲座標原點? ---》我如今就告訴你們 是以屏幕的左上角。 好 咱們如今 就帶着疑問來 看看 android到底怎麼在畫布上 繪製一個矩形
先說這句spa
這個構造方法須要四個參數這四個參數 指明瞭什麼位置 ?咱們就來解釋怎麼畫 這個 矩形
這四個 參數 分別表明的意思是: left top right bottom 上下左右唄。啊,不是 是 左 上 右 下。 下面給你們解釋
left : 矩形左邊的X座標 150 ---->圖片中的A點
top: 矩形頂部的Y座標 75 ---->圖片中的B點
right : 矩形右邊的X座標 260 ----->圖片中的C點
bottom: 矩形底部的Y座標 120 ------->圖片中的D點
不知道你們到這裏 能不能立刻就能想象出 這個矩形應該在屏幕的什麼位置 我是不能 就在紙上畫了畫 下邊來張圖 我模擬器的 屏幕是 320*480 我也是 畫一個大概的位置 主要是明白 那幾個點在什麼地方。 在圖中 我分別以 A B C D 表明 那四個點 圖片中紅色的部分就是咱們要畫的矩形。
canvas.clipRect(10, 10, 280, 260) 這個裁剪畫布的方法 的參數含義和 咱們new Rect(150, 75, 260, 120) 的參數含義是同樣的。
這裏向你們說明一個問題 接着說吧 仍是上邊這個矩形線程
咱們應該怎麼把它放到屏幕的右下角,就是和屏幕的右側和下側都捱上 座標是多少?個人屏幕是 320*480 按道理這個矩形的座標應該是(210,435,320,480) 這其實 應該是正確的結果 ,可是若是把座標改爲這個 你運行一下 其實 這個矩形就消失在了屏幕上。 剛開始我困惑至極 也不知道怎麼回事,後來發現 咱們屏幕的 狀態欄 和 標題欄 一共佔了 50 正確的座標應該是 (210,385,320,430); 咱們仍是來看張圖 那個綠色的矩形 就是咱們想要的效果。
這個時候它就在屏幕的右下角。 這裏仍是有疑問,就算 狀態欄 和 標題欄 佔去了 50 可是矩形最下面那條線 的位置應該仍是 480啊 ! 這是沒錯的啊 怎麼會變成 430 了 很好 我也不知道是怎麼回事 我懷疑 是座標原點 下移 座標原點 在 狀態欄和標題欄的底線。 我這裏只是猜想,若是有高手知道 還請告知。謝謝。 哦 對了 這裏有一個不錯的例子 介紹 怎麼獲取 狀態欄 和 標題欄的 高度rest