看板 AndroidDev 關於我們 聯絡資訊
開發層: (應用/框架/庫/核心) APP 問題: 請問我想在手機螢幕上畫圖 且適用於不同螢幕尺寸的手機 所以我想先取得每支手機的Canvas寬高 我的context view裡的onDraw方法如下: public void onDraw(Canvas canvas) { String TAG= "MY"; int h= canvas.getHeight(); int w= canvas.getWidth(); int d= canvas.getDensity(); Log.v(TAG, "高\t"+ h); Log.v(TAG, "寬\t"+ w); Log.v(TAG, "Density\t"+ d); } 然後我在DDMS中找TAG的訊息 顯示的是: 高 533 寬 320 Density 160 我用的手機是HTC Desire 解析度應該是800x480 為什麼顯示的只有533x320呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.240.176.185
demisoda:canvas和手機螢幕的大小好像是不同的東西 06/07 16:49
neko0624:可是我的Canvas不就是Activity的Context嗎 06/07 18:09
neko0624:我的Activity在螢幕上顯示 Canvas不能代表螢幕解析度嗎 06/07 18:10
ericinttu:canvas應該是當前畫布可用大小. 06/07 20:22
ericinttu:螢幕解析度再扣掉status bar, title bar, 就會是canvas 06/07 20:23
ericinttu:的大小. 06/07 20:23
ericinttu:要不然, 就寫指令把activity變成全螢幕. 06/07 20:23
neko0624:那我想在canvas上畫bitmap使得寬或高縮放至到螢幕邊緣 06/07 20:50
neko0624:是不是該先偵測我的canvas最大可以到多大 06/07 20:51
Jotarun:check this http://goo.gl/LPv3W 06/07 21:34
chrisho:畫布(canvas)也可以10x10啊, 還是取手機螢幕大小吧 06/07 21:35
laiis:用 onSizeChanged() 呢? 06/07 23:08
neko0624:感謝各位 我在onSizeChange裡getHeight,getWidth 06/07 23:51
neko0624:得到的height=483, width=320 好像被縮小的感覺 06/07 23:51
neko0624:如果我想取得canvas在view裡的最大寬高 該怎麼get呢? 06/07 23:54
ericinttu:get? set? create? 06/08 00:07
mamaya3:Display d = getWindowManager().getDefaultDisplay(); 06/08 00:10
mamaya3:int width = d.getWidth(); 06/08 00:11
mamaya3:int height = d.getHeight(); 06/08 00:11
mamaya3:這個如何? 06/08 00:11
mamaya3:不知道有沒例外狀況.. 06/08 00:18
neko0624:樓上大大的方法試了一下顯示的還是533x320 06/08 09:48
neko0624:為什麼總是被縮小1.5倍 ="= 06/08 09:49
Cinfinite:Display d = ((WindowManager)context.getSystemService 06/08 11:16
Cinfinite:("window")).getDefaultDisplay(); 06/08 11:16
Cinfinite:我是都這樣寫,試試看吧 =) 06/08 11:17
mamaya3:Density傳回150比較合理 傳回160就真的很詭異了XD 06/08 14:06
neko0624:Cinfinite大大的看不懂... 06/08 23:46
neko0624:另外Density究竟是甚麼概念呢?不能單純以pixel為單位嗎 06/08 23:47