Android在开始时在画布上绘制白色

亚曼·阿普雷斯扬

我想在白色画布上绘制红色圆圈,但是它是黑色的,只有在第一次触摸后才变成白色,因此我希望它一开始是白色的。这是我的代码。(我也想知道为什么浮动按钮没有显示出来:D)

DrawingView.java:

class DrawingView extends SurfaceView {

private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final SurfaceHolder surfaceHolder;
private ArrayList<Point> points;

public DrawingView(Context context, AttributeSet attrs) {
    super(context, attrs);
    paint.setColor(Color.RED);
    surfaceHolder = getHolder();
    paint.setStyle(Paint.Style.FILL);
    setFocusable(true);
    setFocusableInTouchMode(true);
    points = new ArrayList<>();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    points.add(new Point((int) event.getX(), (int) event.getY()));
    Canvas canvas = surfaceHolder.lockCanvas();
    canvas.drawColor(Color.WHITE);
    for (Point p : points)
        canvas.drawCircle(p.x, p.y, 50, paint);
    surfaceHolder.unlockCanvasAndPost(canvas);
    return false;
}

}

MainActivity.java:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 0, "Save")
            .setIcon(R.drawable.ic_save)
            .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    // do some magic to save :D
                    return false;
                }
            })
            .setShowAsAction(
                    MenuItem.SHOW_AS_ACTION_ALWAYS
                            | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    return super.onCreateOptionsMenu(menu);
}

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.github.clans.fab.FloatingActionMenu
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    fab:menu_fab_size="normal"
    fab:menu_showShadow="true"
    fab:menu_shadowColor="#66000000"
    fab:menu_shadowRadius="4dp"
    fab:menu_shadowXOffset="1dp"
    fab:menu_shadowYOffset="3dp"
    fab:menu_colorNormal="#DA4336"
    fab:menu_colorPressed="#E75043"
    fab:menu_colorRipple="#99FFFFFF"
    fab:menu_animationDelayPerItem="50"
    fab:menu_icon="@drawable/fab_add"
    fab:menu_buttonSpacing="0dp"
    fab:menu_labels_margin="0dp"
    fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
    fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
    fab:menu_labels_paddingTop="4dp"
    fab:menu_labels_paddingRight="8dp"
    fab:menu_labels_paddingBottom="4dp"
    fab:menu_labels_paddingLeft="8dp"
    fab:menu_labels_padding="8dp"
    fab:menu_labels_textColor="#FFFFFF"
    fab:menu_labels_textSize="14sp"
    fab:menu_labels_cornerRadius="3dp"
    fab:menu_labels_colorNormal="#333333"
    fab:menu_labels_colorPressed="#444444"
    fab:menu_labels_colorRipple="#66FFFFFF"
    fab:menu_labels_showShadow="true"
    fab:menu_labels_singleLine="false"
    fab:menu_labels_ellipsize="none"
    fab:menu_labels_maxLines="-1"
    fab:menu_labels_position="left"
    fab:menu_openDirection="up"
    fab:menu_backgroundColor="@android:color/transparent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true">

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/insertPhoto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_insert_photo_24dp"
        fab:fab_size="mini"
        fab:fab_label="Add photos" />

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/addCircle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_brightness_1_24dp"
        fab:fab_size="mini"
        fab:fab_label="Add circles" />

</com.github.clans.fab.FloatingActionMenu>

<reminder.com.paint.DrawingView
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

戈格里戈里扬

使用此DrawingView类

public class DrawView extends View implements View.OnTouchListener {
private List<Point> points = new ArrayList<>();
private Paint paint = new Paint();

public DrawView(Context c) {
    super(c);
    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, point.radius, point.paint);
    }
}

public boolean onTouch(View view, MotionEvent event) {
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    point.radius = 30;
    int c = DrawingPage.selectedColorRGB;
    point.paint = new Paint();
    point.paint.setColor(c);
    points.add(point);
    invalidate();
    return true;
}}

并且在主要活动中

drawView = new DrawView(getApplicationContext());
drawView.setBackgroundColor(Color.WHITE);
drawView.requestFocus();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android 2.2.1在音乐开始时崩溃()

来自分类Dev

电影在画布上绘制时,Android错误信号11

来自分类Dev

为什么在画布上绘制许多元素时页面开始滞后?

来自分类Dev

在画布上绘制网格时的网格大小

来自分类Dev

开始时在视频上使用ffmpeg drawtext

来自分类Dev

开始时Android Pull-to-Refresh显示加载页脚

来自分类Dev

开始时Android Pull-to-Refresh显示加载页脚

来自分类Dev

应用开始时Android空指针异常

来自分类Dev

在Android画布上绘制空心圆

来自分类Dev

Android未在画布上绘制任何内容

来自分类Dev

Android撤消在画布上的绘制方法

来自分类Dev

Android:在画布上绘制xml布局

来自分类Dev

在 Xamarin.Android 画布上绘制位图

来自分类Dev

绘制位图时Android的画布行为变慢

来自分类Dev

在画布上绘制时的XML可绘制比例

来自分类Dev

在画布上绘制时的XML可绘制比例

来自分类Dev

在画布上绘制多次

来自分类Dev

在旋转的画布上绘制

来自分类Dev

在GooglePlus SDK上使用本机共享时,活动开始时没有EXTRA_ACCOUNT

来自分类Dev

在GooglePlus SDK上使用本机共享时,活动开始时没有EXTRA_ACCOUNT

来自分类Dev

在画布上绘制多边形时的间隙

来自分类Dev

创建画布以在Angular 8上绘制签名时遇到麻烦

来自分类Dev

在画布上绘制许多新图像时发生内存泄漏

来自分类Dev

使用 clearRect 时无法在画布上绘制多个形状

来自分类Dev

Android画布绘制

来自分类Dev

当计数器从1开始时,递归方法上的堆栈溢出

来自分类Dev

Div仅在CSS动画开始时在移动设备上消失

来自分类Dev

jQuery UI:拖动开始时,在可拖动克隆上删除Bootstrap工具提示吗?

来自分类Dev

当计数器从1开始时,递归方法上的堆栈溢出

Related 相关文章

热门标签

归档