我已经在该死的太阳下尝试了一切,让它发挥作用,我无法弄明白。
我的活动回复onTouchEvent
但不回复onClick
我试过
implements View.OnClickListener
我试过
让我的活动接受点击但没有任何反应的所有其他事情。
我目前的代码是
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//removes title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
//sets view to full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.muhLayout);
rl.setOnClickListener(this);
}
上面代码的问题是当我访问RelativeLayout时,我得到一个nullpointerexception。 我不知道为什么..我的布局存在,它是
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
</RelativeLayout>
XML中的。
我尝试添加@+id/....
并以这种方式引用它,同样的事情,我得到了一个NPE。
我的onClick
方法看起来像这样
@Override
public void onClick(View event) {
// TODO Auto-generated method stub
x = event.getX();
y = event.getY();
pixelColor = Color.RED;
PixelParticle pp = new PixelParticle(this, x, y, 50, 50, pixelColor);
setContentView(pp);
}
PixelParticle扩展了一个视图并使用onDraw
方法覆盖来绘制。当我使用onTouchEvent
时,这一切都很完美。但我需要onClick
才能工作。
有人可以帮我解决这个问题吗?
最后一件事......当我使用onTouchEvent
并绘制我的位图时,究竟是什么画出来的?
由于View
扩展视图并覆盖PixelParticle
以进行绘制,因此绘制的图像为onDraw(Canvas canvas)
。我假设它是RelativeLayout,它是View的子类,但我想确定。