2 myc 100 myc_100 于 2013.03.19 17:49 提问

当点击按钮时,如何执行 Canvas.drawText 事件?

当点击按钮时,如何执行绘制文本 drawText 事件?如何设置 setContentView(R.layout.main) 来查看按钮,下面的代码是关于绘制文本的。

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  drawView = new DrawView(this); 
  setContentView(drawView); 
}
public DrawView(Context context) { 
  super(context); 
  textpaint.setColor(Color.WHITE);
}
public void onDraw(Canvas canvas) {
  canvas.drawText("Testing", 20, 55, textpaint);
}

1个回答

Baby_Bonnie
Baby_Bonnie   2013.03.20 10:14
已采纳

DrawView 是从哪里继承的?为什么不使用一个简单的 xml 布局,在这个布局中你可以放置一个 TextView,并在 OnClickListener 中使用 setVisible。
示例代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_view);
    Button myButton = (Button) findViewById(R.id.my_button);
    final MySurfaceView surfaceView = (MySurfaceView) findViewById(R.id.mysurface);
    myButton.setOnClickListener(new OnClickListener() {
        @Override
        public boolean onClick(View v) {
            // here you should change the position and the text you want to write
            // like surfaceView.setCoordinates(x, y);
            // and surfaceView.setTextToDraw("myText");
            return true;
        }
    });
}

你需要自己创建 SurfaceView。
XML :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <org.mypackage.MySurfaceView android:id="@+id/mysurface"
        android:layout_width="300dp"
        android:layout_height="300dp" />
    <Button android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Push it real good!" />
</LinearLayout>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c#中如何写单击一个按钮执行另一个按钮的事件!
private  void button1_Click(object sender, EventArgs e) {     this.button1.Click += new System.EventHandler(button2_Click);     //button2.PerformClick();     这2句都可以。 }
纯js实现点击一个事件后,触发另外一个事件的方法
我们在日常的开发中,经常会用到,当我点击一个按钮的click事件后,我想触发另一个按钮的click事件。 这时我们该怎么做呢。用过ext的人都知道,frieEvent方法。但是在使用手机开发的时候,ext对我们的作用就不是很大了。 虽然ext5.0出来了,对手机又支持的功能需求。但是你会为了一个很小的功能,去加载整个庞大的ext.js吗。就算你会使用,你的客户会买账吗。 并不一定会吧,因为你
[C# 基础知识系列]专题五:当点击按钮时触发Click事件背后发生的事情
引言:  当我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的——既然上一专题中说事件是一个多播委托,然而自动生成的代码中只有事件的实例化,却没有看到事件的调用,那既然没有事件调用的代码,那封装的Click为什么会执行呢? 一、点击按钮时触发C
如何在点击特定数据时,不触发输入框失去焦点事件
在自己编写一个搜索框时,会有如下需求: 1.当输入框失去焦点时,清空服务器传来的数据列表 2.当点击服务器列表时数据时,自动添加数据到输入框这时就会产生一个矛盾,当点击数据时输入框会失去焦点,并清空数据。则无法使数据添加到输入框。有没有解决方法呢?有,方法如下:以下使用jquery编写,可自行导入jquery.js文件输入框失去焦点执行的事件 $("#keyword").b
带有按钮并且可以执行单击事件的WINFORM窗体,体悟C#的创建过程
using System;using System.Drawing;using System.Windows.Forms;namespace Window{class Window{static void Main(){Application.Run(new Init());}}
Asp.net 问题:点击button时,总是执行pageload事件,然后再执行button的点击事件
原因:button按钮放在了form中,form提交总是默认点击按钮提交,因此点击button时,系统自动提交了form表单调用pageload事件。           因此大部分pageload的代码都是写在not ispostback中。
jquery实现点击触发执行不同的事件
看图说话: 点击某一个按钮,使其变色,并添加到上面。 方式1: 代码如下: "+na+"给li添加onclick事件。   function act(obj){ $(obj).addClass("active"); var name=$(obj).text(); var tag=$("#putname").append(name+' '); var good=$("#
实现用户点击“Enter”键时触发默认按钮执行查询
-
元素从失去焦点到其他元素被点击期间的事件
假设我们正在填写一张表单,输入完文本内容后,点击提交按钮;那么在这期间,对于这两个表单元素来说都发生了哪些事件呢?<body> <input type="text" onblur="inputBlur()" onchange="inputChange()"> <button onclick="btnClick()" onmousedown="btnMouseDown()" onmo
jQuery 中的 Ajax 全局事件 当用户点击页面上某一按钮请求数据时,在页面上显示 loading... ,页面加载完成后隐藏
ajaxStart(callback):Ajax请求开始时触发该事件 ajaxSend(callback):Ajax请求发送前触发该事件 ajaxSuccess(callback):Ajax请求成功时触发该事件 ajaxComplete(callback):Ajax请求完成时触发该事件 ajaxStop(callback):Ajax请求结束时触发该事件 ajaxError(callbac