2012-12-24 42 views
1

我想要做的是当有人触摸我的位图图像时,发生了一些事情。我一直在努力找出该怎么做。我画了一个画布和一个位图。我如何得到它,所以如果你触摸图像,会发生一些事情。这里是我到目前为止的代码:将onTouchListener设置为位图图像?

拉丝级绘制在画布和位图

package com.example.touchperson; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.view.View; 

public class Drawing extends View { 

    Bitmap robot; 
    //Ignore this float x, y; 
    public Drawing(Context context) { 
     super(context); 
     robot = BitmapFactory.decodeResource(getResources() , R.drawable.character); 


     // TODO Auto-generated constructor stub 
    } 



    @Override 
    protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawColor(Color.WHITE); 
    canvas.drawBitmap(robot, 200, 200, null); 
    //} 

} 
} 

这里的主要活动类

package com.example.touchperson; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Paint; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 

public class MainActivity extends Activity implements OnTouchListener { 


    Drawing view; 
    int touchCount = 0; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     view = new Drawing(this); 
     view.setOnTouchListener(this); 
     setContentView(view); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 




    @Override 
    public boolean onTouch(View v, MotionEvent e) { 
     // TODO Auto-generated method stub 


     return false; 
    } 




} 

这里的XML文件。但是我相信这是没有用的,因为我是以程序化的方式进行的。

<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" 

    tools:context=".MainActivity" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 



</RelativeLayout> 

起初,我尝试使用方法MotionEvent.getX & & MotionEvent.getY == 200,然后做一些事情,因为我有我的形象被设定为(200,200),但没有奏效。 (这些方法是在API中。

+0

没有人?Plzzzzz – recheej

回答

0

您应该使用setOnClickListener代替。这样的View将处理默认情况下,所有的触摸事件,引发只有当检测到点击事件监听器。

+0

你可以设置一个onclicklistener到一个位图吗? – recheej

+0

@recheej:不,你不能,但是你可以设置一个'OnClickListener'到'Drawing''View'来保存你的位图' –

+0

那么我该如何去做 – recheej