2014-01-30 106 views
1

我想創建一個單像素筆畫矩形,但android渲染兩個像素。創建單像素矩形

這裏是我的XML代碼:

<item> 
    <shape android:shape="rectangle">  
     <solid android:color="#FFF" /> 
     <stroke android:width="1px" android:color="#000" /> 
    </shape> 
</item> 

這裏是一個什麼樣呈現左上角:

enter image description here

我唯一的猜測是,這個背景不排隊與設備像素。

+0

嘿,你有沒有解決這個問題?你可以接受一個答案或添加正確的答案來關閉這個問題,並把它從未答覆的列表中,謝謝! –

+0

這還沒解決。 – Robert

回答

0

這是由蜂窩和後來引入的雙線性過濾引起的。解決辦法有兩個:

  1. 禁用清單(壞主意)的所有硬件加速與此標籤

    安卓硬件加速=「假」

  2. 使用XML屬性上受影響的看法軟件只渲染

    機器人:layerType = 「軟件」

我發現這裏的解決方案:

Blurred 1dip shape lines (borders) on Android

0

那麼,本質上是一條線?你可以嘗試使用類似

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> 
    <solid android:color="#FFF" /> 
    <stroke android:width="1px" android:color="#000"/> 
</shape> 

編輯:哎呦,認爲我誤解了。儘管我猜想你總是可以用線條畫一個矩形。

+0

我更新了我的代碼以更明確 – Robert

+0

嘗試使用dp來代替,正如Nick所說。 – ArmaAK

0

px在不同的屏幕尺寸上有不同的含義。我猜這是在一個更大的屏幕上?試着改變單元DP和抗混疊影響應該消失

編輯:其實這不會解決您的問題,如果你只是想在屏幕上線的物理厚度的一半現在的規模。它使它看起來等同於所有類型的屏幕,但保持穩定的外觀,如果這是您的投訴

+0

使用dp不起作用。這是有道理的,因爲根據http://developer.android.com/guide/topics/resources/more-resources.html#Dimension,dp可以根據屏幕密度改變像素高度。無論屏幕密度如何,我都想要像素,因爲我只需要1個像素。 – Robert

+0

是的,儘管這意味着在更大的屏幕上像素可能甚至不會顯而易見,這就是爲什麼dp更好。如果你對沒有排隊的事情造成的影響是正確的,那麼這種方法可以解決這個問題。否則,我唯一能看到的其他選擇就是精心設計的9個補丁 –