/**
   * Method to add the image by setting and creating the views dynamically with delete and zoom
   * option.
   */
  @SuppressWarnings("deprecation")
  private void getImageLayout(Bitmap p_bitmap) {
    ViewsVo m_signVo;
    // Check for images count .Set the count for limiting the number of images to add on screen.
    if (m_ImageCount < 1) {
      m_viewsAddedHeightEmotions = m_viewsAddedHeightEmotions + 90;
      m_ImageCount++;
    } /*
       * else { Toast.makeText(m_context, "No enough space for images.",
       * Toast.LENGTH_LONG).show(); }
       */
    m_btnSDeleteImage = new Button(m_context);
    m_btnZoom = new Button(m_context);
    m_ivtmpImage = new ImageView(m_context);

    setViewsHeightDynamically();
    // System.err.println("Height of Layout------" + m_absHeight);
    m_btnSDeleteImage.setLayoutParams(m_layoutparamsDelete);
    m_btnSDeleteImage.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_deletered));
    m_btnSDeleteImage.setId(0);
    m_btnSDeleteImage.setOnClickListener(new ImageDeleteListener());

    m_btnZoom.setLayoutParams(m_layoutParamsEdit);
    m_btnZoom.setBackgroundDrawable(getResources().getDrawable(R.drawable.right_arrow));
    m_btnZoom.setId(0);

    m_absTextlayout = new AbsoluteLayout(m_context);
    m_absZoomlayout = new AbsoluteLayout(m_context);
    m_ivtmpImage.setImageBitmap(Bitmap.createScaledBitmap(p_bitmap, 400, 180, true));
    m_absTextlayout.setLayoutParams(
        new AbsoluteLayout.LayoutParams(
            AbsoluteLayout.LayoutParams.WRAP_CONTENT,
            AbsoluteLayout.LayoutParams.WRAP_CONTENT,
            0,
            0));
    m_absZoomlayout.setLayoutParams(
        new AbsoluteLayout.LayoutParams(
            AbsoluteLayout.LayoutParams.WRAP_CONTENT,
            AbsoluteLayout.LayoutParams.WRAP_CONTENT,
            0,
            0));

    if (m_absHeight >= 900) m_ivtmpImage.setLayoutParams(new FrameLayout.LayoutParams(400, 200));
    else m_ivtmpImage.setLayoutParams(new FrameLayout.LayoutParams(80, 80));

    m_ivtmpImage.setBackgroundColor(Color.TRANSPARENT);
    m_absTextlayout.addView(m_btnSDeleteImage);
    if (m_absHeight >= 900) m_absZoomlayout.setPadding(0, 0, 0, 0);
    else m_absZoomlayout.setPadding(0, 0, 0, 0);

    m_absZoomlayout.setBackgroundResource(R.drawable.dashedbordersmall);
    m_absZoomlayout.addView(m_ivtmpImage);

    m_absTextlayout.addView(m_absZoomlayout);
    m_absTextlayout.addView(m_btnZoom);
    m_absTextlayout.setDrawingCacheEnabled(true);
    m_absTextlayout.setClickable(true);
    m_absTextlayout.setId(0);
    m_ivtmpImage.setId(0);

    m_vtoTree = m_absTextlayout.getViewTreeObserver();
    m_vtoTree.addOnGlobalLayoutListener(
        new OnGlobalLayoutListener() {

          @Override
          public void onGlobalLayout() {
            m_absTextlayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
          }
        });

    /**
     * Add all the views into arraylist which are added into the screen for further to perform
     * deletion of each views.
     */
    m_signVo = new ViewsVo();
    m_arrSignObjects.add(0, m_signVo);
    m_absolutelayout.addView(m_absTextlayout);

    // Image touch listener to move image onTouch event on screen.
    m_touchImagListener =
        new OnTouchListener() {

          @Override
          public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction() & MotionEvent.ACTION_MASK) {
              case MotionEvent.ACTION_DOWN:
                m_oldX = event.getX();
                m_oldY = event.getY();
                break;
              case MotionEvent.ACTION_UP:

              case MotionEvent.ACTION_POINTER_UP:
                break;

              case MotionEvent.ACTION_MOVE:
                m_dX = event.getX() - m_oldX;
                m_dY = event.getY() - m_oldY;

                m_posX = m_prevX + m_dX;
                m_posY = m_prevY + m_dY;

                if (m_posX > 0
                    && m_posY > 0
                    && (m_posX + v.getWidth()) < m_absolutelayout.getWidth()
                    && (m_posY + v.getHeight()) < m_absolutelayout.getHeight()) {
                  v.setLayoutParams(
                      new AbsoluteLayout.LayoutParams(
                          v.getMeasuredWidth(), v.getMeasuredHeight(), (int) m_posX, (int) m_posY));

                  m_prevX = m_posX;
                  m_prevY = m_posY;
                }
                break;
            }
            return false;
          }
        };

    // Listener for the arrow ontouch of arrow ZoomIn and ZoomOut the image.
    m_strecthArrowListener =
        new OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {

            View view;
            // RemoveBorders();
            view = v;
            v.setClickable(true);
            v.setDrawingCacheEnabled(true);
            AbsoluteLayout m_absLayout = null;
            switch (event.getAction() & MotionEvent.ACTION_MASK) {
              case MotionEvent.ACTION_DOWN:
                m_oldX = event.getX();
                m_oldY = event.getY();
                break;
              case MotionEvent.ACTION_UP:

              case MotionEvent.ACTION_POINTER_UP:
                break;

              case MotionEvent.ACTION_MOVE:
                m_newX = event.getX();
                m_newY = event.getY();

                float newDist = m_newX - m_oldX;
                if (m_newX > m_oldX && m_newY > m_oldY) {
                  if (newDist > 0.0f) {
                    m_scale = 1;
                    m_absLayout = (AbsoluteLayout) v.getParent();
                    int m_hightOfImage =
                        (int)
                            (m_scale
                                + (((ImageView)
                                        ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                                    .getHeight()));
                    int m_widthOfImage =
                        (int)
                            (m_scale
                                + (((ImageView)
                                        ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                                    .getWidth()));
                    m_widthDelete =
                        (int)
                            (m_scale + ((((AbsoluteLayout) m_absLayout.getChildAt(1))).getWidth()));
                    m_heightDelete =
                        (int)
                            (m_scale
                                + ((((AbsoluteLayout) m_absLayout.getChildAt(1)).getHeight())));
                    if (m_absLayout.getBottom() <= (m_ivImage.getBottom())
                        && m_absLayout.getRight() <= (m_DisplayWidth)) {
                      m_layoutparams =
                          new AbsoluteLayout.LayoutParams(m_widthOfImage, m_hightOfImage, 0, 0);
                      ((ImageView) ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                          .setLayoutParams(m_layoutparams);

                      m_layoutparams =
                          new AbsoluteLayout.LayoutParams(
                              AbsoluteLayout.LayoutParams.WRAP_CONTENT,
                              AbsoluteLayout.LayoutParams.WRAP_CONTENT,
                              m_absLayout.getLeft(),
                              m_absLayout.getTop());
                      m_absLayout.setLayoutParams(m_layoutparams);
                      ((Button) m_absLayout.getChildAt(0))
                          .setLayoutParams(
                              new AbsoluteLayout.LayoutParams(
                                  m_deleteEditHeightwidth,
                                  m_deleteEditHeightwidth,
                                  m_widthDelete,
                                  0));
                      ((Button) m_absLayout.getChildAt(2))
                          .setLayoutParams(
                              new AbsoluteLayout.LayoutParams(
                                  m_deleteEditHeightwidth,
                                  m_deleteEditHeightwidth,
                                  m_widthDelete,
                                  m_heightDelete));

                      m_hightOfImage =
                          (int)
                              (m_scale
                                  + (((AbsoluteLayout) m_absLayout.getChildAt(1)).getHeight()));
                      m_widthOfImage =
                          (int)
                              (m_scale + (((AbsoluteLayout) m_absLayout.getChildAt(1)).getWidth()));
                      m_layoutparams =
                          new AbsoluteLayout.LayoutParams(
                              m_widthOfImage,
                              m_hightOfImage,
                              ((AbsoluteLayout) m_absLayout.getChildAt(1)).getLeft(),
                              ((AbsoluteLayout) m_absLayout.getChildAt(1)).getTop());
                      ((AbsoluteLayout) m_absLayout.getChildAt(1)).setLayoutParams(m_layoutparams);
                    }
                  }
                }
                if (m_newX < m_oldX && m_newY < m_oldY) {
                  m_absLayout = (AbsoluteLayout) view.getParent();

                  int m_hightOfImage =
                      (int)
                          (((ImageView) ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                                  .getHeight()
                              - m_scale);
                  int m_widthOfImage =
                      (int)
                          (((ImageView) ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                                  .getWidth()
                              - m_scale);

                  m_widthDelete =
                      (int) (((AbsoluteLayout) m_absLayout.getChildAt(1)).getWidth() - m_scale);
                  m_layoutparams =
                      new AbsoluteLayout.LayoutParams(m_widthOfImage, m_hightOfImage, 0, 0);
                  ((ImageView) ((AbsoluteLayout) m_absLayout.getChildAt(1)).getChildAt(0))
                      .setLayoutParams(m_layoutparams);

                  m_layoutparams =
                      new AbsoluteLayout.LayoutParams(
                          AbsoluteLayout.LayoutParams.WRAP_CONTENT,
                          AbsoluteLayout.LayoutParams.WRAP_CONTENT,
                          m_absLayout.getLeft(),
                          m_absLayout.getTop());
                  m_absLayout.setLayoutParams(m_layoutparams);

                  ((Button) m_absLayout.getChildAt(0))
                      .setLayoutParams(
                          new AbsoluteLayout.LayoutParams(
                              m_deleteEditHeightwidth, m_deleteEditHeightwidth, m_widthDelete, 0));
                  ((Button) m_absLayout.getChildAt(2))
                      .setLayoutParams(
                          new AbsoluteLayout.LayoutParams(
                              m_deleteEditHeightwidth,
                              m_deleteEditHeightwidth,
                              m_widthDelete,
                              m_widthDelete));

                  m_hightOfImage =
                      (int) ((((AbsoluteLayout) m_absLayout.getChildAt(1)).getHeight()) - m_scale);
                  m_widthOfImage =
                      (int) ((((AbsoluteLayout) m_absLayout.getChildAt(1)).getWidth()) - m_scale);
                  m_layoutparams =
                      new AbsoluteLayout.LayoutParams(
                          m_widthOfImage,
                          m_hightOfImage,
                          ((AbsoluteLayout) m_absLayout.getChildAt(1)).getLeft(),
                          ((AbsoluteLayout) m_absLayout.getChildAt(1)).getTop());
                  ((AbsoluteLayout) m_absLayout.getChildAt(1)).setLayoutParams(m_layoutparams);
                }

                break;
            }

            return false;
          }
        };
    m_absTextlayout.setOnTouchListener(m_touchImagListener);
    m_btnZoom.setOnTouchListener(m_strecthArrowListener);
  }