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

  • bunliu

    bunliu

    2 Mayıs 2007
  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • jbignacio

    jbignacio

    13 Mart 2006