我目前正在开发一款游戏!因为有一个框架布局,其中有一个 HorizontalView,一个在 VerticalView 和 AbsoluteLayout 中,并且在 Absolutelayout 中位于右上角,因为有一个 ImageView
现在在 HorizontalView 和 VerticalView 中有一个图像礼服列表。当我单击该图像时,裙子将被添加到绝对布局中。在 imageView 中有一个卡通片。现在我可以将那条裙子拖放到这个卡通片中
因为那个 XML 代码是
<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>
现在代码是
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) {
}
现在所有的代码都用上面的代码成功完成了,但是当我也想要如果我点击男孩的顶部|右图,图像也应该改变,意味着当我点击那个男孩时,他们也应该改变。 .我已经尝试了很多但无法得到它请任何人都可以帮助我,