Android 一般问题
我有一个小程序,其中我有2个图像,现在我正在为每个图像做一个点击事件,当点击顶部的图像设置为不可见。这很好用。。但是把这个放在主要活动中会变得很混乱 我创建了一个TestView,我想将主活动中的代码移动到TestView,但是我不知道在哪里放置OnTouch事件以及如何从那里执行相同的操作,我不知道在哪里放置OnTouch事件以及如何从我的TestView中绘制ImageView。。当我参加主要活动时,他们画得很好。。但是现在。。我不知道如何从“testView扩展视图”类中绘制它们。。。你能帮我组织一下吗Android 一般问题,android,Android,我有一个小程序,其中我有2个图像,现在我正在为每个图像做一个点击事件,当点击顶部的图像设置为不可见。这很好用。。但是把这个放在主要活动中会变得很混乱 我创建了一个TestView,我想将主活动中的代码移动到TestView,但是我不知道在哪里放置OnTouch事件以及如何从那里执行相同的操作,我不知道在哪里放置OnTouch事件以及如何从我的TestView中绘制ImageView。。当我参加主要活动时,他们画得很好。。但是现在。。我不知道如何从“testView扩展视图”类中绘制它们。。。你能
public class TestView extends View{
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public TestView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public TestView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
}
我只是想知道,如果我将它移动到测试视图,我如何重新组织它,使它从那里开始工作。我对安卓非常陌生
感谢您提供了onTouch事件,您只需要在您的
TestView
上实现onTouchListener
。如果两个图像视图都在TestView
中,则需要某种视图组来进行自定义视图的布局。如果没有,您只需扩展ImageView而不是扩展View,并将自定义TestView放在XML布局中,然后在活动中调用setContentView()
如果不够清楚,说点什么:p
希望有帮助,
JQCorreia谢谢,唯一不清楚的是,我应该将ImageView和我在主要活动中拥有的OnTouch功能放在哪里…?:(您可以使用它们创建XML布局。请记住,在布局中使用自定义视图时,必须向它们提供整个类路径(例如)。在此之后,在活动中只需调用
setContentView()
我前面说过:)
public class GameActivity extends Activity {
/** Called when the activity is first created. */
public int ColorId;
public boolean isUserTurn = false;
public int globalIndex = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myviewlay);
final ImageView image1= (ImageView)findViewById(R.id.ImageView03);
image1.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
try {
Thread.sleep(200);
ColorId = 1;
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN){
image1.setVisibility(View.INVISIBLE);
}
else
{
image1.setVisibility(View.VISIBLE);
}
//return super.onTouchEvent(event);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
});
final ImageView image2= (ImageView)findViewById(R.id.ImageView02);
image2.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
try {
Thread.sleep(200);
ColorId = 2;
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN){
image2.setVisibility(View.INVISIBLE);
}
else
{
image2.setVisibility(View.VISIBLE);
}
//return super.onTouchEvent(event);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
});