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);
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]);
}
});
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) {
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) {
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return images1.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
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) {
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return images2.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
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 , . , , , ... , , , ,