我正在开发一款游戏!在那里有一个框架布局,在VerticalView和AbsoluteLayout中有一个HorizontalView和One,在Absolutelayout中是在右上角,因为有一个ImageView
现在在HorizontalView和VerticalView中有一个图像连衣裙列表。当我点击该图像时,衣服将被添加到Abosolute布局..而在imageView中有一个卡通..现在我可以将这件衣服拖放到这个卡通
该代码的是
<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) {
}
现在所有人都用上面的代码成功完成但当我也想要如果我点击男孩的顶部|右图像时,图像也应该改变,意味着有不同类型的男孩,当我点击它时他们也应该改变男孩......我已经尝试了很多但是无法得到它,请任何身体都可以帮助我,
答案 0 :(得分:2)
查看以下帖子:
还有其他问题: Drag and drop images in android
最后,如果您要为API级别&gt; = 11创建应用,则应使用此方法: Drag and Drop Android Page
但首先,请记住:永远不要使用AbsoluteLayout