SORU
29 NİSAN 2010, PERŞEMBE


kaplama iki bir imageview ayarlamak için android görüntüleri

Benim app iki resim yerleşimi için çalışıyorum, ama canvas.setBitmap() hattımı kaza görünüyorlar. Neyi yanlış yapıyorum?

private void test() {
    Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.t);
    Bitmap mBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.tt);
    Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), mBitmap.getConfig());
    Canvas canvas = new Canvas();
    canvas.setBitmap(bmOverlay);
    canvas.drawBitmap(mBitmap, new Matrix(), null);
    canvas.drawBitmap(mBitmap2, new Matrix(), null);
    testimage.setImageBitmap(bmOverlay);
}

CEVAP
29 NİSAN 2010, PERŞEMBE


Karmaşık Tuval manipülasyon atlayın ve bu tamamen yapmak Drawables ile LayerDrawable kullanarak yapabilirsiniz. İki seçenek var: ya define it in XML o zaman sadece görüntüyü ayarlayın veya LayerDrawable dinamik olarak kod. bir yapılandırma yapabilirsin

Çözüm #1 (XML üzerinden):

Yeni Drawable XML dosyası oluşturmak, layer.xml arayın:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/t" />
    <item android:drawable="@drawable/tt" />
</layer-list>

Şimdi görüntü bu Drawable kullanarak:

testimage.setImageDrawable(getResources().getDrawable(R.layout.layer));

Çözüm #2 (dinamik):

Resources r = getResources();
Drawable[] layers = new Drawable[2];
layers[0] = r.getDrawable(R.drawable.t);
layers[1] = r.getDrawable(R.drawable.tt);
LayerDrawable layerDrawable = new LayerDrawable(layers);
testimage.setImageDrawable(layerDrawable);

(Bir hata olabilir bu yüzden bu kodu test etmedim, ama bu genel taslak çalışması gerekir.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • William Sledd

    William Sled

    24 EYLÜL 2006