2011-08-05 16 views
6

Bitmap'in sol tarafındaki 10 satırı beyaza nasıl beyaz ayarlayabilirim? Sol tarafta yastıklı olması gereken bir Bitmap var. Yeni bir görüntü oluşturmak için her bir konum için yeni bir görüntü oluşturabileceğimi düşündüm ve yeni bitmap'i döndürmek yerine yeni (beyaz veya renkli) setpiksel ayarlamak ... bu yanlış mı? Herhangi bir öneri? çok teşekkürler!Android: padding beyaz renkli bir bitmap bıraktı

cevap

16

Ayarlamak için daha fazla dolgu sayısı olan yeni bir Bitmap oluşturabilirsiniz. Bunu tuval bitmap olarak ayarlayın ve tüm resmi gereken renkle renklendirin ve ardından bitmap'inizi kopyalayın.

public Bitmap pad(Bitmap Src, int padding_x, int padding_y) { 
    Bitmap outputimage = Bitmap.createBitmap(Src.getWidth() + padding_x,Src.getHeight() + padding_y, Bitmap.Config.ARGB_8888); 
    Canvas can = new Canvas(outputimage); 
    can.drawARGB(FF,FF,FF,FF); //This represents White color 
    can.drawBitmap(Src, padding_x, padding_y, null); 
    return outputimage; 
} 
+0

Mükemmel! teşekkürler ... bir soru daha sormak için ... x-ofset için, dolgudan sonraki ilk piksel mi demek istiyorsun? – Jed84

+0

Boyutları (w256, h104) olan bir bitmapim var diyebilirim, bu görüntü (w256, h128), görüntüyü germeden eşit ve altta eşit beyaz boşluklar ekleyerek yapabilir mi? – Pierre

+0

Güzel ama sadece bitmap'in üstüne ve soluna pixcel ekler. 4 taraf için hiçbir şey bulunamadı (üst, sol, sağ, alt). –

0
public Bitmap addPaddingTopForBitmap(Bitmap bitmap, int paddingTop) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + paddingTop, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, paddingTop, null); 
    return outputBitmap; 
} 

public Bitmap addPaddingBottomForBitmap(Bitmap bitmap, int paddingBottom) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + paddingBottom, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, 0, null); 
    return outputBitmap; 
} 


public Bitmap addPaddingRightForBitmap(Bitmap bitmap, int paddingRight) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingRight, bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, 0, null); 
    return outputBitmap; 
} 

public Bitmap addPaddingLeftForBitmap(Bitmap bitmap, int paddingLeft) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingLeft, bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, paddingLeft, 0, null); 
    return outputBitmap; 
} 
İlgili konular