Как нарисовать что-то пальцем в приложении для Android… и сохранить в Интернете

** НА ЭТОТ ВОПРОС БЫЛ УСПЕШНО ОТВЕЧЕН И СТАЛ ПОСТОМ В БЛОГЕ **

Привет, я PHP-разработчик, я хочу сделать простую вещь -Я хочу нарисовать что-то на пустой странице на телефоне Android (пальцем с большим «эмулированным пером пера» )и сохранить растровое изображение в формате jpeg на сервере по почте http.

Вот то, что у меня есть на данный момент, но это взято из учебника , связанного с написанием спрайтов для игры.. И я не могу его адаптировать

package com.my.example;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnTouchListener;

public class DrawCapture extends Activity implements OnTouchListener{

    OurView v;
    Bitmap ball;
    float x,y;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.draw_capture);
        v = new OurView(this);
        v.setOnTouchListener(this);
        ball = BitmapFactory.decodeResource(getResources(), R.drawable.blueball);
        x = y = 0;
        setContentView(v);
    }

    @Override
    protected void onPause(){
        super.onPause();
        v.pause();
    }

    protected void onResume(){
        super.onResume();
        v.resume();
    }

    public class OurView extends SurfaceView implements Runnable{
        Thread t = null;
        SurfaceHolder holder;
        boolean isItOK = false;

        public OurView(Context context) {
            super(context);
            holder = getHolder();
        }

        public void run() {
            while (isItOK == true){

                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                //perform canvas drawing
                if (!holder.getSurface().isValid()){
                    continue;
                }
                Canvas c = holder.lockCanvas();
                onDraw(c);
                holder.unlockCanvasAndPost(c);
            }       
        }

        public void onDraw(Canvas c){
            c.drawARGB(255, 210, 210, 210);
            c.drawBitmap(ball, x - (ball.getWidth()/2), y - (ball.getHeight()/2), null);
        }

        public void pause(){
            isItOK = false;
            while(true){
                try{
                    t.join();
                } catch(InterruptedException e){
                    e.printStackTrace();
                }
                break;
            }
            t = null;
        }

        public void resume(){
            isItOK = true;
            t = new Thread(this);
            t.start();
        }
    }

    public boolean onTouch(View v, MotionEvent me){

        switch (me.getAction()){
            case MotionEvent.ACTION_DOWN : 
                x = me.getX();
                y = me.getY();              
                break;
            case MotionEvent.ACTION_UP : 
                x = me.getX();
                y = me.getY();              
                break;
            case MotionEvent.ACTION_MOVE : 
                x = me.getX();
                y = me.getY();              
                break;
        }
        return true;
    }
}

а вот XML






Кто-нибудь может мне помочь? Я чувствую, что я близок -Я использую blueballв качестве пера. Я просто хочу "сохранить" это, и, возможно, мне понадобится кнопка (или меню )на странице XML, чтобы сделать это ? Я знаю, что это немного прошу, но много людей в сети спрашивают, как рисовать пальцем и сохранять что-то в «облаке», если бы люди могли ответить примерами кода (не ссылки )Я обещаю, что скомпилирую это в правильный обучающий фрагмент кода для конечной пользы всех. Включая серверный код PHP, которым я уже очень доволен.

10
задан conners 26 July 2012 в 09:03
поделиться