2011-07-24 28 views
7

Bazı bitmap'leri res/drawable olarak yerleştirdim.Android'in bitmapimi otomatik olarak yeniden boyutlandırmasını istemiyorum Otomatik olarak

BitmapFactory.decodeResource() ile bitmapler'i yükledikten sonra yoğunluklarına göre otomatik olarak yeniden boyutlandırıldıklarını öğreniyorum.

İstediğim bu değil. Orijinal boyutlarını korumasını istiyorum (piksel boyutu).

Ne yapmalıyım?

+1

Goggling'in ikinci turundan sonra, "drawable-nodpi" adlı bir klasör olduğunu öğrendim. Bu nedenle sorun çözülmüş görünüyor. – Sunny

cevap

1

HDpi, ldpi ve mdpi'nizde ayrı görüntüleri sakladıysanız ve bu görüntülere erişmek için kaynak kullanıyorsanız, fazla bir şey yapamazsınız.

Sadece bir resmin kullanılması gerekiyorsa, mdpi klasöründe tek bir kopyasını saklayın ve diğerlerini silin.

-1

Resimlerinizi "çekilebilir" (ldpi, mdpi, hdpi et. Al. Soneki olmadan) adlı bir klasöre yerleştirin. Muhtemelen kendi başınıza oluşturmanız gerekebilir (örneğin, Eclipse, bunu otomatik olarak oluşturmaz).

Bundan sonra, çekilebilen kaynağı diğer çekilebilir şeyler klasörlerinden silin. Eğer nodpi eki kullanırsanız

+0

Bu bitmap'leri res/drawable olarak yerleştirdim – Sunny

+1

Klasöre çizilebilir, çekilebilir mdpi/160dpi/ile aynı şekilde kullanılır. – Kostadin

+0

Bu yorum tamamen yanlış. Doğru cevap, inScaled setini false veya diğer cevaplarda belirtildiği gibi bir -nodpi klasörünü kullanmaktır. – RichieHH

17

Başka bir soruda da söylendiği gibi, çekilebilen nodpi klasörünün kullanılması, android'in resimlerinizi yeniden boyutlandırmasını engelleyecektir. Ayrıca, bir görüntünün hdpi ve ldpi biçiminde birden çok sürümüne sahip olmak istiyorsanız, ancak sistemin bunları yeniden boyutlandırmasını istemiyorsanız (örneğin, iki çözünürlüğün gücünü korumak için), aşağıdaki kodu kullanabilirsiniz. bitmpap yüklenirken:

// ask the bitmap factory not to scale the loaded bitmaps 
BitmapFactory.Options opts = new BitmapFactory.Options(); 
opts.inScaled = false; 

// load the bitmap 
Bitmap bitmap = BitmapFactory.decodeResource(ctx.getResources(), R.id.mybmp, opts); 
+1

Yükün içerisine seçenekleri eklemeniz gerekir: Bitmap bitmap = BitmapFactory.decodeResource (ctx.getResources(), R.id.mybmp, opts); –

İlgili konular