2011-08-05 3 views
6

Comment définir tout blanc les 10 lignes sur le côté gauche d'un bitmap? J'ai une bitmap qui doit être complétée sur le côté gauche. Je pensais que je peux créer une nouvelle image itérer sur l'ancien getpixel pour chaque position et setpixel sur le nouveau (blanc ou coloré) que de retourner le nouveau bitmap ... est-ce faux? Une suggestion? Merci beaucoup!Android: rembourrage laissé un bitmap avec la couleur blanche

Répondre

16

Vous pouvez créer un nouveau bitmap avec le nombre de pixels supplémentaires. Définissez ceci comme le bitmap du canevas et colorez l'image entière avec la couleur requise, puis copiez votre bitmap.

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

Parfait! merci ... juste une question de plus ... pour x-offset vous voulez dire le premier pixel qui reste après le remplissage? – Jed84

+0

Disons que j'ai un bitmap avec des dimentions (w256, h104), cela permettra-t-il de faire cette image (w256, h128) en ajoutant uniformément des espaces blancs en haut et en bas sans étirer l'image? – Pierre

+0

Sympa mais ça n'ajoute que des pixcels en haut et à gauche du bitmap. rien trouvé pour les 4 côtés (haut, gauche, droite, bas). –

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; 
}