Android 白板制作
嘿!! 我想制作一个白板应用程序,但我不知道如何只让一些像素变黑,而让其他像素变白。看看这个。Android 白板制作,android,Android,嘿!! 我想制作一个白板应用程序,但我不知道如何只让一些像素变黑,而让其他像素变白。看看这个。 此外,您可能还需要一个web应用程序/服务,以便将屏幕内容传送给观众。这将有助于在白板上获得黑色像素: Scribbler.java: package org.yourpackage.scribble; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; public clas
此外,您可能还需要一个web应用程序/服务,以便将屏幕内容传送给观众。这将有助于在白板上获得黑色像素: Scribbler.java:
package org.yourpackage.scribble;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
public class Scribbler extends Activity {
DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.WHITE);
setContentView(drawView);
drawView.requestFocus();
}
}
DrawView.java:
package org.yourpackage.scribble;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class DrawView extends View implements OnTouchListener {
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
paint.setColor(Color.BLACK);
}
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 2, paint);
}
}
public boolean onTouch(View view, MotionEvent event) {
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
return true;
}
}
class Point {
float x, y;
}
package org.yourpackage.scribble;
导入java.util.ArrayList;
导入java.util.List;
导入android.content.Context;
导入android.graphics.Canvas;
导入android.graphics.Color;
导入android.graphics.Paint;
导入android.view.MotionEvent;
导入android.view.view;
导入android.view.view.OnTouchListener;
公共类DrawView扩展了视图实现OnTouchListener{
列表点=新的ArrayList();
油漆=新油漆();
公共绘图视图(上下文){
超级(上下文);
设置聚焦(真);
setFocusableInTouchMode(真);
this.setOnTouchListener(this);
油漆。设置颜色(颜色。黑色);
}
@凌驾
公共空白onDraw(画布){
用于(点:点){
画布.画圈(点x,点y,2,绘画);
}
}
公共布尔onTouch(视图、运动事件){
点=新点();
point.x=event.getX();
point.y=event.getY();
点。添加(点);
使无效();
返回true;
}
}
类点{
浮动x,y;
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.yourpackage.scribble"
android:versionCode="1"
android:versionName="1.0">
<application>
<activity android:name=".Scribbler">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
…结果看起来像:
你可能想画线而不是像素-这只是给你一个线索这是一个大问题,你能缩小一点吗。到目前为止你走了多远?你能给我们看一些代码吗?你只需要正确地推销它。白板Lite(不包括白板标记)不,我想自己编程。。。我想确定显示器的每个像素,当它被按下时,它应该改变颜色。。。对不起,我的英语这么差?public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Canvas Canvas=new Canvas();Paint Paint Paint=new Paint();Paint.setColor(Color.WHITE);Canvas.drawPoint(20,20,Paint);}但是视图呢…请阅读我给你发的链接上的这部分。“要做到这一点:从droidnova复制整个代码,替换以下内容。”你知道视图如何知道油漆和convas在它们上面吗?PERFEKT!!!但我不明白的是,为什么新的观点知道油漆是“开着的”它?因为在Scribbler活动中,我们将我们的DrawView设置为活动内容-如果在该DrawView上发生了什么事情,我们将获得onTouch方法内的坐标,然后导致调用onDraw方法来绘制我们的像素-onDraw被自动调用,因为我们通过调用InvalidDate强制重新绘制视图()在onTouch中-您可以在该链接的“绘图”部分+1 DonGru中获得有关此行为的信息。当我在Nexus 7上使用时,使用2表示半径太小,因此我在canvas.drawCircle()上使用20