[英]Android General Question
我有一个小程序,其中有2张图像,现在单击顶部的图像设置为“不可见”时,我正在为每个图像执行OnTouch事件。 效果很好。但是在主活动中将其弄乱了。
我创建了一个TestView,我想将主要活动中的代码移动到testView,但是我不知道将OnTouch事件放在哪里以及如何从那里进行相同操作,我不知道将代码放在哪里。 OnTouch事件以及如何从我的testView中绘制ImageViews ..当我参加Main活动时,它们绘制得很好..但是现在..我不知道如何从“ 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);
}
}
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;
}
});
我只是想知道,如果我将其移至测试视图,该如何重新组织它以便从那里开始工作。 我是Android的新手...
谢谢
对于onTouch事件,您只需要在TestView
上实现onTouchListener
。 如果两个ImageView都在TestView
,则需要某种ViewGroup来布局自定义视图。 如果不是, setContentView(<your_layout>)
扩展ImageView而不是扩展View,然后将自定义TestView放在XML布局中,然后在活动中调用setContentView(<your_layout>)
。
如果不够清楚,说点什么:P
希望它有帮助,JQCorreia
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.