2010-05-06 23 views
36

Hep cihazın yönelim olursa olsun ekranın sol alt köşesinde bulunan bir arka plan görüntüsü var (her iki boyutta fill_parent ayarlanır) benim kök LinearLayout elemanını ayarlamak çalışıyorum . "Arka plan konumu: sol alt" kullanarak css ile yapabileceğiniz gibi arka plan görüntüsü konumunu ayarlamanın bir yolu olsaydı mükemmel olurdu. ama Android'de bunu başarmanın bir yolunu görmüyorum. Bunu yapmanın bir yolu var mı? Yardım içinArkaplan Resmi Yerleştirme

teşekkürler.

cevap

78

Bir XML dosyasında (örneğin "res/drawables/my_drawable.xml"

<?xml version="1.0" encoding="utf-8"?> 
<bitmap 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/my_png_file" 
    android:gravity="bottom|left" /> 

sizin bitmaple özel bir bitmap çekilebilir oluşturmak Ve sonra görünümün arka plan olarak bu çekilebilir xml ayarlamak gerekecek ("@ drawables/my_drawable") Çekilebilen XML formatı Android sitesinde çok zayıf bir şekilde belgelenmiştir, bu nedenle, kendi başınıza nasıl çözeceğinizi öğrenmek kolay bir problem değildir.

+0

nasıl başka bir XML XML bitmap başvurabilirsiniz Görüntü Oranı sorunu ortaya çıkar arka plan uygulanmıyor? Başka çekilebilir atıfta ediyorum – mr5

+0

aynı şekilde - Bunu denilen eğer benim örnekte, 'herhangi bir yerde çekilebilir/my_drawable' @ sen (çekilebilir başka türde başvurabilir' şeklinde referansta bulunmak istiyorum my_drawable.xml' android background', ':' android gibi drawableLeft' bir textview üzerine, vb) –

+0

hiçbir klasör res/drawables yoktur. Eğer onu yaratmaya çalışırsanız bir hata olur. Bir bit eşlem denemek düşünmek bile yoktu, bir xml klasörü oluşturulur ve Oraya koyun ve hata bu kodu – user2070775

9

Eğer bir avantaj elde edilirse Bu programlama: görüntü bunun yerine daha sonra daha büyük olma düzenine uygun yok ideia neden

012..

kodu:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), 
       R.drawable.image); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); 
bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT); 
LinearLayout layout = (LinearLayout) findViewById(R.id.background_root); 
layout.setBackgroundDrawable(bitmapDrawable); 
+0

Buna diğer avantajı da sadece görüntünün değiştirilmesi birçok görünüme uygulanabilir olmasıdır – Onimusha

0

bir RelativeLayout içine LinearLayout sarın ve buna bir ImageView ekleyin. Android'i kullanarak: layout_alignParentBottom ve android: layout_alignParentLeft, resminizi sol alttaki alana koyabilirsiniz.

<RelativeLayout 
    android:id="@+id/relativeLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:src="@drawable/my_image" /> 

    <LinearLayout 
     android:id="@+id/linearLayout" 
     ... > 

emin ImageView arka planda görüntü çizmek için RelativeLayout ilk öğesi olduğundan emin olun.

0

Benim cevabım arka planda için XML kullanıyorsanız,

Gravity.Fill_HORIZONTAL ile uyacak

yüzden bu kodu

Bitmap bmp = BitmapFactory.decodeResource(getResources(), 
       R.drawable.image); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp); 
    bitmapDrawable.setGravity(Gravity.BOTTOM| Gravity.RIGHT| Gravity.FILL_HORIZONTAL); 
LinearLayout layout = (LinearLayout) findViewById(R.id.background_root); 
layout.setBackgroundDrawable(bitmapDrawable); 
kullanmak boy oranında sorunu ortaya çıkabilir yukarıdaki cevapları sadece bir güncelleme olduğunu düzeni genişliği hangi sen de XML dosyasında bu bahsedebiliriz ama Dediğim gibi