2012-12-24 132 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