首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onTouch ImageView运动?

onTouch ImageView运动?
EN

Stack Overflow用户
提问于 2013-05-19 18:01:51
回答 1查看 126关注 0票数 0

我对Android的开发还比较陌生。

但是我想知道是否可以移动这些图像,这样它们就可以在网格中互相交换。因为这是一个棋盘游戏,我正在努力实现。

这就是它看起来的样子:http://i.imgur.com/2shAuGd.png

图像数组的代码:

代码语言:javascript
复制
    private Integer[] mThumbIds = {
        R.drawable.blank, R.drawable.blank, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.blank, R.drawable.blank, 
        R.drawable.blank, R.drawable.blank, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.blank, R.drawable.blank, 
        R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, 
        R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.empty, R.drawable.peg, R.drawable.peg, R.drawable.peg,
        R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.peg, 
        R.drawable.blank, R.drawable.blank, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.blank, R.drawable.blank, 
        R.drawable.blank, R.drawable.blank, R.drawable.peg, R.drawable.peg, R.drawable.peg, R.drawable.blank, R.drawable.blank,
        };

XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<GridView  
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:layout_marginTop="40dp"
    android:columnWidth="50dp"
    android:numColumns="7"
    android:verticalSpacing="2dp"
    android:horizontalSpacing="2dp"
    android:stretchMode="columnWidth"
    android:gravity="center" />

</LinearLayout> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-19 18:15:18

如果你不需要拖放,这应该很简单。

代码语言:javascript
复制
private View firstClicked = null;

private OnClickListener swapImages = new OnClickListener() {

    @Override
    public void onClick(View v) {
        if(firstClicked != null){
            LayoutParams p1 = firstClicked.getLayoutParams();
            LayoutParams p2 = v.getLayoutParams();
            v.setLayoutParams(p1);
            firstClicked.setLayoutParams(p2);
                            firstClicked = null;
        }
        else 
            firstClicked = v;
    }
};

这样你就可以交换他们的位置,而不是他们里面的图像。

编辑:但如果这干扰了你的游戏逻辑,你只是交换而不是布局参数,你只是交换他们的图像。

编辑:此代码交换您的绘图,您需要创建您自己的逻辑。

代码语言:javascript
复制
package com.example.stackoverflow;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
import android.app.Activity;
import android.graphics.drawable.Drawable;


public class Game extends Activity {

private ImageView firstClicked = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.game);

            GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));

        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                Toast.makeText(Game.this, "" + position, Toast.LENGTH_SHORT).show();
                if(firstClicked != null){
                    ImageView v2 = (ImageView)v;
                    Drawable d2 = v2.getDrawable();
                    Drawable d1 = firstClicked.getDrawable();
                    v2.setImageDrawable(d1);
                    firstClicked.setImageDrawable(d2);
                    firstClicked = null;
                }
                else {
                    firstClicked = (ImageView)v;
                }
            }

        });
    }
}

希望这对你的工作有帮助和享受。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16637761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档