我在一個資源文件中定義的圓半徑尺寸,像這樣:如何在不同的Android設備上繪製相同物理尺寸的圓?
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="circleRadius">15dp</dimen>
</resources>
然後我得出這樣的自定義視圖圓:
Resources res = getResources();
float radius = res.getDimension(R.dimen.circleRadius);
...
canvas.drawCircle(randomX, randomY, radius, paint);
我的印象是,這個下會在任何設備上產生相同物理尺寸的圓,因爲這些單位是在dp中指定的,但它不是。請參閱下面的截圖。
設備1(皮膚= WVGA800,密度= 240):
設備2(皮膚= QVGA,密度= 120):
(皮膚= 1024×768,密度= 160):
對於每個設備,我打勾啓動時Scale display to real size
選項,和所使用的相同的設置(屏幕尺寸= 3.7中,監視器DPI = 105)。這是我出錯的地方嗎?有什麼我不明白的嗎?
那麼一個人如何得出同樣的物理尺寸的圈中的任何設備上? –
屏幕**尺寸**在物理尺寸和屏幕尺寸方面有所不同。如果你試圖用尺子來衡量,你永遠不會得到完全一樣的東西。你想要完成什麼? –
我想在任何設備上繪製一個相同物理尺寸(例如1英寸半徑)的圓。與[本示例]類似(http://developer.android.com/guide/practices/screens_support.html#density-independence)。 –