私は現在1つのゲームを開発しています!フレーム レイアウトがあり、HorizontalView が 1 つ、VerticalView と AbsoluteLayout に 1 つ、Absolutelayout に ImageView があるという点で右上にあります。
現在、HorizontalView と VerticalView には画像のドレスのリストがあります。その画像をクリックすると、ドレスのドレスがAbosoluteレイアウトに追加されます..そして、imageViewには1つの漫画があります..今、そのドレスをこの漫画にドラッグアンドドロップできます
その 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) {
}
上記のコードですべてが正常に完了しましたが、男の子のトップ|右の画像をクリックすると、画像も変更される必要がある場合、その男の子をクリックすると変更される必要がある別の種類の男の子があることを意味します.. . 私はたくさん試しましたが、それを得ることができませんでした。