Android:Draw image in the center of another image

后端 未结 2 844
抹茶落季
抹茶落季 2020-12-19 11:34

I have one image image 1 and one is coming from server that is image 2 i am trying to draw second one just at the center of the first. as result i

相关标签:
2条回答
  • 2020-12-19 11:45

    Courtesy : Draw text/Image on another Image in Android

    Drawing images over each other is fairly simple with Canvas. Canvas basically acts as the drawing board to draw text/Image. You just need to construct a canvas with the first Image and then draw the second Image at the center as shown below

    /* This ImageOne will be used as the canvas to draw an another image over it. Hence we make it mutable using the copy API
    as shown below
    */
          Bitmap imageOne = BitmapFactory.decodeResource(getResources(), R.drawable.imageOne).copy(Bitmap.Config.ARGB_8888,true);
          // Decoding the image two resource into a Bitmap
          Bitmap imageTwo= BitmapFactory.decodeResource(getResources(), R.drawable.imageTwo);
          // Here we construct the canvas with the specified bitmap to draw onto
          Canvas canvas=new Canvas(imageOne);
    
    /*Here we draw the image two on the canvas using the drawBitmap API.
    drawBitmap takes in four parameters
    1 . The Bitmap to draw
    2.  X co-ordinate to draw from
    3.  Y co ordinate to draw from
    4.  Paint object to define style
    */
          canvas.drawBitmap(imageTwo,(imageOne.getWidth())/2,(imageOne.getHeight())/2,new Paint());
    
          imageView.setImageBitmap(imageOne);
    
    0 讨论(0)
  • 2020-12-19 12:03

    This should do what you're looking for:

    The backgroundBitmap variable would be your image1 and the bitmapToDrawInTheCenter would be your image2.

    public void createImageInImageCenter()
    {
        Bitmap backgroundBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        Bitmap bitmapToDrawInTheCenter = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_search);
        
        Bitmap resultBitmap = Bitmap.createBitmap(backgroundBitmap.getWidth(),backgroundBitmap.getHeight(), backgroundBitmap.getConfig());
        Canvas canvas = new Canvas(resultBitmap);
        canvas.drawBitmap(backgroundBitmap, new Matrix(), null);
        canvas.drawBitmap(bitmapToDrawInTheCenter, (backgroundBitmap.getWidth() - bitmapToDrawInTheCenter.getWidth()) / 2, (backgroundBitmap.getHeight() - bitmapToDrawInTheCenter.getHeight()) / 2, new Paint());
        
        ImageView image = (ImageView)findViewById(R.id.myImage);
        image.setImageBitmap(resultBitmap);
    }
    
    0 讨论(0)
提交回复
热议问题