2013-03-26 19 views
6

Bir düğmenin arkaplan görüntüsünü ölçeklendirmem ama bir Bitmap'e dönüştüremem gerekiyor.Java (Android): Bitmap olmadan çekilebilir ölçek nasıl?

int height = 50; 
int width = 80; 

Button b = new Button (this); 
b. setBackgroundResource(R.drawable.btn); 

Şimdi "height" ve "genişlik" göre "R.drawable.btn" ölçek gerekir: Burada şu anda kodudur. SetBackgroundResource bir Bitmap'i kabul etmeyecektir. Bunu nasıl yaparım?

Teşekkür ederiz.

+0

"ama bir bitmap dönüştürmek olamaz" Cevabımın ikinci yarısının, sorunuza uygun olmadığını. "R.drawable.btn" kaynağını Bitmap'e çevirmekten gerçekten vazgeçmene gerek var mı? Eğer öyleyse, merakımı gidermek ve daha iyi bir cevap üretmeye yardımcı olmak için, neden? –

+0

btn.setBackgroundResource bir Bitmap'i arka plan olarak ayarlamama izin vermediğinden. Sanırım btn.setBackgroundDrawable'ı da denedim, şimdi tekrar deneyeceğim. – BinaryMonster

cevap

18

Düzen parametrelerinin ölçeği denetlemesine izin verebilir veya görüntüyü kendiniz ölçeklendirebilirsiniz.

düzen görüntüsünü ölçeklemek için izin verin:

b.setBackground(getResources().getDrawable(R.drawable.btn)); 

Ölçek elle resim:

Bitmap original = BitmapFactory.decodeResource(context.getResources(), R.drawable.btn); 
Bitmap b = Bitmap.createScaledBitmap(original, width, height, false); 
Drawable d = new BitmapDrawable(context.getResources(), b); 
button.setBackground(d); 

Uyarı: Görüntü beklediğiniz tam olarak ölçekli ekranda görünen olmayabilir. Bunun nedeni, Button'unuzun düzen parametrelerine bağlı olarak, Android'in cihazınızın donanım ekran yoğunluğunu temel alarak görüntüyü ölçeklendirmesidir. Korkarım

+0

SetBackgroundDrawable kullanımdan kaldırıldı mı? – BinaryMonster

+0

SetBackground olmalı, kodu düzenledim – BinaryMonster

+0

Teşekkürler @BinaryMonster. İyi yakalama. –

0

bu çekilebilir

image = new BitmapDrawable(getResources(),MenuScreen.image1); 

görüntüye bir bitmap dönecek çekilebilir ve image1 Çünkü metnin Bitmap

İlgili konular