2011-02-25 16 views
8

Uygulamam için bir simge yapıyorum. Uygulama temelde bir arkadaş bulucu. Google Latitude’dan simgeler gibi görünen bir yer paylaşımı oluşturuyorum. Kullanıcıya göre değişen bir imajım var ve yatılı sahibiyim. Katmanlı çizilebilir ve bindirme parasını yapabildim ama sorun şu ki, görüntü sınırın boyutuna kadar uzanıyor. Bu bir sorundur çünkü Google Lat simgelerini hiç görmediyseniz, aralarında açık alan bulunan bir nokta vardır.Katmanlı Çizilebilir boyutunu ayarlayın.

olduğunu Ne yapmak gerek, nasılsa sınırın kare bölümünün sınırları değişen görüntünün boyutunu sınırlamak. Herhangi bir Yardım çok takdir edilecektir.

BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 25; 
    Bitmap bit = BitmapFactory.decodeFile(photo, options); 
    draw = new BitmapDrawable(bit); 

    Resources r = getResources(); 
    Drawable[] layers = new Drawable[2]; 
    layers[0] = draw; 
    layers[1] = r.getDrawable(R.drawable.border); 
    LayerDrawable layerDrawable = new LayerDrawable(layers); 
    draw = layerDrawable; 

    }else{ 
    draw = this.getResources().getDrawable(R.drawable.androidmarker); 
    } 

    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(draw, this); 

    GeoPoint point = new GeoPoint(lat,lon); 
    OverlayItem overlayitem = new OverlayItem(point, username, avail + " : " + status + " : Position updated at : " + update_at); 
    items.add(overlayitem); 
    itemizedoverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedoverlay); 

cevap

19

Komik Bunu yayınlanmıştır sonra, cevabı buldum bücür: İşte benim pasajıdır. Resmi yeniden boyutlandırmak için tüm yanlış yerlere bakıyordum. Katmanlardaki bitmap, çizilebilir katmanları denedim. Ama, asla denemediğim katman kendiliğinden çekilebilirdi. çözüm aşağıda verilmiştir: aşağıdaki gibi

Resources r = getResources(); 
    Drawable[] layers = new Drawable[2]; 
    layers[0] = draw; 
    layers[1] = r.getDrawable(R.drawable.border); 
    LayerDrawable layerDrawable = new LayerDrawable(layers); 
    layerDrawable.setLayerInset(0, 0, 0, 0, 12); 
    draw = layerDrawable; 

layerDrawable gömme yöntemi:

layerDrawable.setLayerInset(*index of layer*, *left inset*, *top*, *right*, *bottom*); 

teşekkürler çocuklar!

İlgili konular