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

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • Metheud

    Metheud

    9 EYLÜL 2006
  • Orson Wang

    Orson Wang

    28 EKİM 2006