android - 如何在 ImageView 上绘图

标签 android

为什么这段代码不在 ImageView 中用户触摸的地方绘制一个圆圈并将坐标输出到 TextView ?

package com.smallbore.smallbore;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.TextView;

public class targetenter extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.targetenter);
    }

   public class ImageView1 extends ImageView {
        public int x;
        public int y;
        public ImageView1(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
        public boolean dispatchtouchevent(MotionEvent event){
            x = (int) event.getX();
            y = (int) event.getY();
            TextView t1 = (TextView)findViewById(R.id.textView2);
            t1.setText("x="+x);
            TextView t2 = (TextView)findViewById(R.id.textView3);
            t2.setText("y="+y);
            invalidate();
            return true;
        }
        @Override
        public void onDraw(Canvas canvas){
            super.onDraw(canvas);
            canvas.drawCircle(x,y,10, null );
    }
}
}

和 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <TextView android:layout_height="wrap_content" android:text="@string/cposition" android:id="@+id/textView1" android:layout_width="wrap_content"></TextView>
    <com.smallbore.smallbore.targetenter.Imageview1 android:id="@+id/imageView1" android:layout_width="300dip" android:layout_height="300dip" android:background="@drawable/target" android:layout_gravity="center_horizontal"></com.smallbore.smallbore.targetenter.Imageview1>
    <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>

最佳答案

onTouchEvent 更改为 dispatchTouchEvent .此外,请确保您在 XML 中使用 imageView1,而不仅仅是 ImageView

关于android - 如何在 ImageView 上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128176/

相关文章:

java.net.SocketTimeoutException : failed to connect

java - 如何在 Java 服务器中重新创建由 Android 压缩的 JPEG 文件

java - 在 PictureTaken(byte[] data) 上解释来自 Android Camera 的原始图像数据

java - 在预定线程上请求位置更新

android - 在联系人列表中显示我的应用程序的图标

android - 检测方向变化,当 Android 只允许纵向时

java - 如何在谷歌同意屏幕中添加 Logo ?

android - android中Gson和Room的ID问题(发送json到客户端)

c# - Xamarin.Forms 文本转语音

<= 4.1.2 中的 Android 锁屏控件