关于在an​​droid中画布上绘制的绘画的验证

时间:2015-03-15 14:48:04

标签: android canvas

先生,我们正在开发一个应用程序,教小孩子写字母。在这里,我们显示一个带有两个图像的屏幕,其中一个图像在右侧,它只是为了显示字母表的图像,另一个图像是一个轻微的图像,用户可以在其上绘制图像进行练习。我想验证用户绘制的图像是否已在基本图像上正确绘制。!

(注意:我完全不知道我在其中使用的“缩放”是什么用。)我可以请一个解决方案,因为我尝试了很多但是cudnt得到了答案

代码是:

enter code here

package com.example.androidhive;

import com.example.androidhive.ColorPickerDialog.OnColorSelectedListener;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.os.Bundle;
import android.support.v4.view.MotionEventCompat;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.Toast;
import android.widget.ViewFlipper;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class FullImgTwoActivity extends Activity implements OnTouchListener {
    int pp;
    int pickupLinesItemIndex;
    int position;
    PaintView paintView;
    ViewFlipper layout;
    int size = 0;
    int progress = 0;
    ImageView imageView1;
    private Bitmap bmp;
    private Bitmap operation;
    GetScaling scaling;

    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.full_image);
        paintView = new PaintView(this);
        scaling=new GetScaling(this);
        layout = (ViewFlipper) findViewById(R.id.view1);
        Intent i = getIntent();
        position = i.getExtras().getInt("id");
        final ImageAdapterTwo imageAdapterTwo = new ImageAdapterTwo(this);
        imageView1 = (ImageView) findViewById(R.id.imageView1);
        imageView1.setImageResource(imageAdapterTwo.mThumbIdsx[position]);
        bmp=imageView1.getDrawingCache();
        layout.setBackgroundResource(imageAdapterTwo.mThumbIdsy[position]);
        paintView.setLayoutParams(new LinearLayout.LayoutParams(500, 500));
        layout.addView(paintView);
        ImageView back = (ImageView) findViewById(R.id.imageView3);
        back.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                if (pickupLinesItemIndex < imageAdapterTwo.mThumbIdsw.length) {
                    if (position <= 0) {
                        Toast.makeText(getApplicationContext(), "This is the starting alphabet", 90)
                                .show();
                    } else {
                        imageView1
                                .setImageResource(imageAdapterTwo.mThumbIdsx[--position]);
                        layout
                                .setBackgroundResource(imageAdapterTwo.mThumbIdsy[position]);
                    }
                }
            }
        });

        ImageView nexta = (ImageView) findViewById(R.id.imageView4);
        nexta.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if (pickupLinesItemIndex > imageAdapterTwo.mThumbIdsw.length) {
                    //if (position <=imageAdapter.mThumbIds.length) {
                        Toast.makeText(getApplicationContext(), "This level is done", 90)
                                .show();
                    } else {
                        imageView1
                                .setImageResource(imageAdapterTwo.mThumbIdsx[++position]);
                    layout
                                .setBackgroundResource(imageAdapterTwo.mThumbIdsy[position]);
                    //}
                }

            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        getMenuInflater().inflate(R.menu.home, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case R.id.select_color_menu:
            showColorPickerDialogDemo();
            break;
        case R.id.select_clear_menu:
            paintView.clear();
            paintView.invalidate();
            break;
        case R.id.pointers_select_menu:
//          pointerDialog();
            break;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }

    private void pointerDialog() {
        // TODO Auto-generated method stub

        final Dialog d = new Dialog(FullImgTwoActivity.this);
        d.setTitle("Increase pointer size");
        d.setContentView(R.layout.pointerssize);
        SeekBar bar = (SeekBar) d.findViewById(R.id.seekBar1);
        Button save = (Button) d.findViewById(R.id.save);
        Button cancel = (Button) d.findViewById(R.id.cancel);

        bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progresValue,
                    boolean fromUser) {
                progress = progresValue;
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                // Display the value in textview
                size = seekBar.getMax();
            }
        });
        save.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                paintView.setSize(progress);
                d.dismiss();
            }
        });
        cancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                d.dismiss();
            }
        });
        d.show();
    }

    private void showColorPickerDialogDemo() {

        int initialColor = Color.WHITE;
        ColorPickerDialog colorpick = new ColorPickerDialog(
                FullImgTwoActivity.this, initialColor,
                new OnColorSelectedListener() {

                    @Override
                    public void onColorSelected(int color) {
                        paintView.setColo(color);
                    }
                });
        colorpick.show();

    }

    public void Checkimage(View v) {
        scaling.checktheimage(imageView1);
        scaling.checkpaintimage(paintView);
        boolean paint=scaling.bmapaint;
        boolean image=scaling.bmapimage;
        if(paint!=image){
            AlertDialog.Builder al=new AlertDialog.Builder(FullImgTwoActivity.this);
            al.setTitle("Please Try Again");
            al.setIcon(R.drawable.checkno);
            al.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    paintView.clear();
                    paintView.invalidate();
                }
            }) ;
            al.setNegativeButton("NO",new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    Intent in=new Intent(FullImgTwoActivity.this, GridLayoutTwo.class);
                    startActivity(in);
                    finish();
                }
            });
            AlertDialog dialog=al.create();
            dialog.show();
            }else {
                AlertDialog.Builder al=new AlertDialog.Builder(FullImgTwoActivity.this);
                al.setTitle("Please Go To Next Letter");
                al.setIcon(R.drawable.checkno);
                al.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        Intent in=new Intent(FullImgTwoActivity.this, GridLayoutTwo.class);
                        startActivity(in);
                        finish();
                    }
                }) ;
                al.setNegativeButton("NO",new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        paintView.clear();
                        paintView.invalidate();
                    }
                });
                AlertDialog dialog=al.create();
                dialog.show();
            }
    }
    //@Override

    public boolean onCreateOptionsMenu1(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_full_img_two, menu);
        return true;
    }
    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        // TODO Auto-generated method stub
        return false;
    }



    }

0 个答案:

没有答案