Contenido sobre Android
Buscar
Social
Ofertas laborales ES

Foro sobre Android > canvas.drawBitmap Error en tamaño y posicion

Buenas A todos y de ante mano gracias, Espero estén bien escribo pues estoy haciendo unw app, sencilla que debe unir mas de dos bitmap en uno solo, el problema esta en que la posición de los bitmap y el tamaño de los secundarios esta mal, y la verdad no le encuentro la vuelta pues la lógica me dice que esta bien, de hecho es un código que tengo ya en c# y lo pase a java ,obviamente es diferente sin embargo tienen el mismo principio. :'(:'(:'(

me gustaría saber si tienen la forma de hacer que la posición y el tamaño de dichas imágenes salgan tal como se les esta diciendo en el código ,

adjunto código e imágenes de como se ve y como salen con el código que ya tengo en C#


CODIGO JAVA

Paint mPaint;

Bitmap image1=BitmapUtils.decodeBase64(Lie.GeFondo().GetImagen());
Bitmap image2=BitmapUtils.decodeBase64(Utilidades.getImagenTomadabase64());
Bitmap image3=BitmapUtils.decodeBase64(Lie.GetBanner().GetImagen());
Bitmap result = Bitmap.createBitmap(image1.getWidth(), image1.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
Rect srcRect = new Rect(0, 0, image1.getWidth(), image1.getHeight());
Rect dstRect = new Rect(srcRect);
Rect srcRect1 = new Rect( Foto.GetPosicionDeItems().Getx(),Foto.GetPosicionDeItems().Gety(),Foto.GetTamano().GetWidth(), Foto.GetTamano().GeHeight());
Rect srcRect3 = new Rect( Lie.GetBanner().GetPosicionDeItems().Getx(), Lie.GetBanner().GetPosicionDeItems().Gety() ,Lie.GetBanner().GetTamano().GetWidth(), Lie.GetBanner().GetTamano().GeHeight());


Rect srcRect2 = new Rect(0,0,image2.getWidth(), image2.getHeight());
Rect srcRect4 = new Rect(0,0,image3.getWidth(), image3.getHeight());

dstRect.offset(0, 0);
canvas.drawBitmap(image1, srcRect, dstRect, null);
dstRect.offset(image1.getWidth(), 0);
srcRect1.offset(0, 0);
canvas.drawBitmap(image2,srcRect2 ,srcRect1 , null);

srcRect1.offset(image2.getWidth(), 0);
srcRect3.offset(0, 0);
canvas.drawBitmap(image3,srcRect4 ,srcRect3 , null);
srcRect3.offset(image3.getWidth(), 0);
myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(result);

Image Generada en Java

http://i58.tinypic.com/1zywm5u.jpg


El codigo en c# es este

Es diferente pro el for pero a la final es lo mismo


System.Drawing.Bitmap Bac = (System.Drawing.Bitmap)Lienzo.Fondo.Imagen;
System.Drawing.Graphics r = System.Drawing.Graphics.FromImage(Bac);

if (Lienzo.Fotos != null)
{
if (Lienzo.Fotos.Count > 0)
{
int i = 0;
foreach (RADMLIB.Items item in Lienzo.Fotos)
{

System.Drawing.Bitmap img = (System.Drawing.Bitmap)Lista[i];
r.DrawImage(img, item.PosicionDeItems.X, item.PosicionDeItems.Y, item.Tamano.Width, item.Tamano.Height);
i++;
}
}
}
if (Lienzo.Banner != null)
{
r.DrawImage((System.Drawing.Bitmap)Lienzo.Banner.Imagen, Lienzo.Banner.PosicionDeItems.X, Lienzo.Banner.PosicionDeItems.Y, Lienzo.Banner.Tamano.Width, Lienzo.Banner.Tamano.Height);
}

return Bac;


Imagen Generado con c#
http://i61.tinypic.com/s61wlh.jpg

noviembre 29, 2014 | Registered Commenterradm

Solución aqui http://www.forosdelweb.com/f165/error-posicion-tamano-unir-bitmaps-con-canvas-drawbitmap-1114926/

noviembre 29, 2014 | Unregistered CommenterRoberth