Drag

I am currently developing one game! That there is a frame layout in which there is one HorizontalView and One in the VerticalView and AbsoluteLayout, and in Absolutelayout it is on the top right, because there is an ImageView

Now in HorizontalView and VerticalView there is a list of image dresses. When I click on this image, the dress will be added to the Abosolute layout. And there is one cartoon in imageView. Now I can drag this dress into this cartoon

for this XML code

<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" >



<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"/>

<com.devsmart.android.ui.HorizontalListView
    android:id="@+id/hlistview"
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    />

<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" >

         <ImageView
             android:id="@+id/imgKitty"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:src="@drawable/hk1" />

</AbsoluteLayout>

Code now

  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<ImageView> mArrayList = new ArrayList<ImageView>();

@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<?> arg0, View arg1, int arg2, long arg3) {
            setupViews(images2[arg2]);
        }

    });

    hListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> 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 && 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 < 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) {
     }

, , , Top | Right , . , , , ... , , , ,

+5

All Articles