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

  • captainpuppys2000

    captainpuppy

    20 HAZİRAN 2013
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008