- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Android 开发还比较陌生。
但我想知道是否可以移动这些图像,以便它们可以在网格中相互交换。因为它是一个棋盘游戏,我正在尝试实现。
这就是它的样子:/image/rnyta.png
图像数组的代码:
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:
<?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>
最佳答案
如果您不需要拖放,这应该很简单。
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;
}
};
这样您只需交换它们的位置,而不是其中的图像。
编辑:但如果这干扰了你的游戏逻辑,你只需交换而不是布局参数,你只需交换它们的图像。
编辑:此代码交换您的绘图,您需要创建自己的逻辑
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;
}
}
});
}
}
希望这对您有所帮助并祝您工作愉快。
关于java - ImageView 的 onTouch 移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637761/
我在 ScrollView 中使用 ImageView Controller 。在实现和测试方面,我发现滚动总是覆盖 onTouch 事件而不是 imageView (dragImage)。 我尝试使
运行代码时没有收到任何错误,但触摸屏幕时没有任何反应。全局变量 select 的值应该改变,但没有任何反应。 这是代码 public class NonmultiplierSixGame extend
我发现当我停止在屏幕上移动手指时,Android onTouch 事件不会被触发,因此我无法正确获取游戏中每个刻度的指针计数。 @Override public boolean onTouch(Vie
这个问题已经有答案了: Android beginner: understanding MotionEvent actions (2 个回答) 已关闭 9 年前。 好吧,我正在制作一个简单的秒表,当您
我正在开发一款在屏幕上运行不同位图的游戏(SurfaceView)。由于它们具有不同的速度,有时会发生两个字符叠加的情况,一个在另一个后面。我使用 OnTouch 功能来捕捉玩家触摸角色的瞬间。但是,
我正在使用 onTouch(View arg0, MotionEvent arg1)作为游戏输入。它返回 false 所以它没有被处理。在我运行 4.0.4 的 HTC HD2 上,这足以让播放器足够
我试图在我的 LoadPreview().execute 启动时禁用 onTouch(),因为如果用户点击触发我的 LoadPreview() 的按钮,将会出现重复的预览按钮。所以我想在加载过程中禁用
好的,我正在玩扩展 View 的 ontouch 事件。 我所做的是在触摸时形成一个圆圈。当你移动时,圆圈会随之而来。当你移动另一个圆圈时,它会位于递减半径的位置,直到它消失……(现在最多有 10 个
这是我的布局文件 这是我的自定义 View import android.view.MotionEvent; import android.view.View; import
在我的应用程序中,我想计算两个距离之间的比率,但我不知道为什么变量 dist1 和 dist2 没有保存我在 IF ELSE 语句中计算的值,我的代码有什么问题? 任何指导或帮助将不胜感激。 这是方法
我已将 RelativeLayout 设为可点击,但我希望整个布局在用户触摸时变为橙色。我该怎么做? 最佳答案 您可以使用描述的方法here . 关于android - 如何使用橙色制作相对布局渲
我需要在触摸屏幕时播放文件。 我尝试了以下方法,但没有成功: -(IBAction)play; { CFBundleRef mainBundle = CFBundleGetMainBundle
我在 onCreate 方法中有这段代码: ImageView iv01 = (ImageView)findViewById(R.id.hexagon01); iv01.
我正在尝试用我的观点做 3 件事。第一次“点击”我的屏幕时,我想将 View 顶部的 ImageView 完全设置为 0alpha 以显示下方 View 。当屏幕水龙头被抬起时,我希望 alpha 回
我使用 onTouchListener 在用户手指按下时更改背景颜色,并在用户手指抬起时更改回默认颜色。问题在于,当用户的手指向下时,背景颜色会发生变化,但如果用户没有抬起手指并开始滚动,背景颜色不会
我正在使用 ontouch 事件,但我遇到的问题是它调用了 down 事件,但它没有调用 move 事件或 UP 事件检查以下代码 public class DragNewActivity exten
您好,我正在 http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers 的帮助下制作动态壁纸.现在我想在主屏幕
我正在玩 UI 事件处理,我发现了一些我无法从 Android Dev 中找到解释的东西:我有一个 ImageView 和一个 TextView,每当我触摸 ImageView 时,TextView
我有这样的布局: LinearLayout RelativeLayout(id = test) FrameLayout (From a LIB. id = lib) 我尝试将
如果设备上有多根手指,onTouch 监听器是针对每个手指运行一次,还是针对每个事件(手指按下、移动等)运行一次并包括每个 Activity 的触摸指针? 如果 (e.getAction() & Mo
我是一名优秀的程序员,十分优秀!