title: drag and drop imageview android
body: <p>I am currently developing one game! In that there is a frame layout in that there is one HorizontalView and One in VerticalView and AbsoluteLayout and in Absolutelayout  is at Top Right in that there is a ImageView</p>
  
  <p>Now In HorizontalView and VerticalView there is a list of dresses of images. when i click on that image the of dress will be added to the Abosolute layout.. And in imageView there is a one cartoon.. now i can drag and drop that dress into this cartoon </p>
  
  <p>for that XML code is </p>
  
  <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@drawable/pink_bg" &gt;
  
  
  
  &lt;ListView android:id="@+id/vlistview"
      android:layout_alignParentTop="true"
      android:layout_width="60dp"
      android:layout_marginBottom="60dp"
      android:layout_height="wrap_content"
      android:scrollingCache="false"/&gt;
  
  &lt;com.devsmart.android.ui.HorizontalListView
      android:id="@+id/hlistview"
      android:layout_alignParentBottom="true"
      android:layout_width="fill_parent"
      android:layout_height="60dp"
      /&gt;
  
  &lt;AbsoluteLayout
      android:id="@+id/frameLayout"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_marginBottom="60dp"
      android:layout_marginLeft="60dp"
      android:padding="10dp" &gt;
  
           &lt;ImageView
               android:id="@+id/imgKitty"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:src="@drawable/hk1" /&gt;
  
  &lt;/AbsoluteLayout&gt;
  </code></pre>
  
  <p></p>
  
  <p>Now the code is </p>
  
  <pre><code>  public class MainActivityAbs extends Activity implements OnClickListener, OnTouchListener {
  int images1[], images2[];
  static int imgKittyNo = 0;
  static int kittyStatus = 0;
  int[] kitties;
  ImageView imgKitty;
  ImageView mKittyDress;
  private AbsoluteLayout mKittyBGLayer;
  ArrayList&lt;ImageView&gt; mArrayList = new ArrayList&lt;ImageView&gt;();
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      kitties = new int[] { R.drawable.hk1, R.drawable.hk2, R.drawable.hk3, R.drawable.hk4, R.drawable.hk5 };
  
      images1 = new int[] { R.drawable.hk_a1, R.drawable.hk_a2, R.drawable.hk_a3, R.drawable.hk_a4, R.drawable.hk_a5, R.drawable.hk_a6,
              R.drawable.hk_a7, R.drawable.hk_a8, R.drawable.hk_dress, R.drawable.hk_dress, R.drawable.hk_dress2, R.drawable.hk_dress3,
              R.drawable.hk_dress4, R.drawable.hk_dress5, R.drawable.hk_dress6, R.drawable.hk_dress7, R.drawable.hk_dress8, R.drawable.hk_dress9,
              R.drawable.hk_dress10, R.drawable.hk_dress11, R.drawable.hk_dress12, R.drawable.hk_dress13, R.drawable.hk_dress14,
              R.drawable.hk_dress15, R.drawable.hk_dress16, R.drawable.hk_dress17, R.drawable.hk_dress18, R.drawable.hk_dress19,
              R.drawable.hk_dress20, R.drawable.hk_dress21 };
  
      images2 = new int[] { R.drawable.hk_flo, R.drawable.hk_flo2, R.drawable.hk_glasses, R.drawable.hk_glasses2, R.drawable.hk_glasses3,
              R.drawable.hk_hair1, R.drawable.hk_hair2, R.drawable.hk_hair3, R.drawable.hk_hair4, R.drawable.hk_hair5, R.drawable.hk_hat1,
              R.drawable.hk_hat2, R.drawable.hk_hat3, R.drawable.hk_hat4, R.drawable.hk_hat5, R.drawable.hk_hat6, R.drawable.hk_ribon1,
              R.drawable.hk_ribon2, R.drawable.hk_ribon3, R.drawable.hk_ribon4, R.drawable.hk_ribon5, R.drawable.hk_ribon6, R.drawable.hk_ribon7,
              R.drawable.hk_ribon8, R.drawable.hk_ribon9, R.drawable.hk_ribon10, R.drawable.hk_ring, R.drawable.hk_glasses, R.drawable.hk_glasses2,
              R.drawable.hk_glasses3 };
  
      ListView vListView = (ListView) findViewById(R.id.vlistview);
      vListView.setAdapter(new VAdapter(this));
  
      HorizontalListView hListView = (HorizontalListView) findViewById(R.id.hlistview);
      hListView.setAdapter(new HAdapter(this));
      imgKitty = (ImageView) findViewById(R.id.imgKitty);
      // imgKitty.setOnClickListener(this);
      mKittyBGLayer = (AbsoluteLayout) findViewById(R.id.frameLayout);
      setupViews(kitties[0]);
  
  
      vListView.setOnItemClickListener(new OnItemClickListener() {
  
          @Override
          public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) {
              setupViews(images2[arg2]);
          }
  
      });
  
      hListView.setOnItemClickListener(new OnItemClickListener() {
  
          @Override
          public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) {
              setupViews(images1[arg2]);
          }
  
      });
  
      /*imgKitty.setOnClickListener(new View.OnClickListener() {
  
          @Override
          public void onClick(View v) {
              // TODO Auto-generated method stub
              System.out.println("ImgKitty is called");
          }
      });*/
      mKittyBGLayer.setOnTouchListener(new OnTouchListener() {
          public boolean onTouch(View v, MotionEvent event) {
              for (ImageView img1 : mArrayList) {
                  if (kittyStatus == img1.getId()) {
                      mKittyDress = img1;
                      break;
                  }
              }
              if(mKittyDress!=null) {
              LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, (int) event.getX() - mKittyDress.getWidth()
                      / 2, (int) event.getY() - mKittyDress.getHeight() / 2);
              mKittyDress.setLayoutParams(lp);
              }
              return true;
          }
      });
  
      final ImageView imgClearAll = (ImageView)findViewById(R.id.imgClearAll);
      imgClearAll.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
              // TODO Auto-generated method stub
              if(mKittyBGLayer!=null &amp;&amp; mArrayList!=null)
              {
                  mKittyBGLayer.removeAllViews();
                  mKittyBGLayer.addView(imgKitty);
                  mArrayList.clear();
              }
  
          }
      });
  
  }
  
  @Override
  public boolean onTouch(View v, MotionEvent event) {
      boolean isKitty = false;
      for (int i = 0; i &lt; kitties.length; i++) {
          if (v.getId() == kitties[i]) {
              isKitty =true;
          }
      }
      if(!isKitty)
          kittyStatus = v.getId();
      return false;
  }
  
  private void setupViews(int args) {
  
      if (args == R.drawable.hk1 || args == R.drawable.hk2 || args == R.drawable.hk3 || args == R.drawable.hk4 || args == R.drawable.hk5
              || args == R.drawable.hk6) {
          imgKitty.setImageResource(args);
      } else {
  
          mKittyDress = new ImageView(this);
          mKittyDress.setImageResource(args);
          mKittyDress.setId(imgKittyNo++);
          mKittyDress.setOnTouchListener(MainActivityAbs.this);
          mArrayList.add(mKittyDress);
          mKittyBGLayer.addView(mKittyDress);
      }
  
  }
  
  
  private class HAdapter extends BaseAdapter {
  
      private Context context;
      LayoutInflater inflater;
  
      public HAdapter(Context context) {
          // TODO Auto-generated constructor stub
          this.context = context;
          inflater = LayoutInflater.from(context);
  
      }
  
      @Override
      public int getCount() {
          // TODO Auto-generated method stub
          return images1.length;
      }
  
      @Override
      public Object getItem(int position) {
          // TODO Auto-generated method stub
          return position;
      }
  
      @Override
      public long getItemId(int position) {
          // TODO Auto-generated method stub
          return position;
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          HViewHolder holder;
          if (convertView == null) {
              convertView = inflater.inflate(R.layout.listinflate, null);
              holder = new HViewHolder();
              convertView.setTag(holder);
  
          } else {
              holder = (HViewHolder) convertView.getTag();
          }
          holder.img = (ImageView) convertView.findViewById(R.id.image);
          holder.img.setImageResource(images1[position]);
          return convertView;
      }
  
  }
  
  class HViewHolder {
      ImageView img;
  }
  
  
  
  private class VAdapter extends BaseAdapter {
  
      private Context context;
      LayoutInflater inflater;
  
      public VAdapter(Context context) {
          // TODO Auto-generated constructor stub
          this.context = context;
          inflater = LayoutInflater.from(context);
  
      }
  
      @Override
      public int getCount() {
          // TODO Auto-generated method stub
          return images2.length;
      }
  
      @Override
      public Object getItem(int position) {
          // TODO Auto-generated method stub
          return position;
      }
  
      @Override
      public long getItemId(int position) {
          // TODO Auto-generated method stub
          return position;
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          ViewHolder holder;
          if (convertView == null) {
              convertView = inflater.inflate(R.layout.listinflate, null);
              holder = new ViewHolder();
              convertView.setTag(holder);
  
          } else {
              holder = (ViewHolder) convertView.getTag();
          }
          holder.img = (ImageView) convertView.findViewById(R.id.image);
          holder.img.setImageResource(images2[position]);
  
          return convertView;
      }
  
  }
  
  class ViewHolder {
      ImageView img;
  }
  
  @Override
  public void onClick(View v) {
       }
  </code></pre>
  
  <p>Now all are done successfully with above code but when i also want that if i click on Top|Right image of boy, the image should also change, Mean there is different kind of boy they should also change when i click on that boy...  I have tried so much but could not get it please any body can help me,</p>