Inne działy

 

Android rysowanie - przykład

 

W tym przykładzie pokazujemy, jak rysować / malować w obiekcie canvas, gdy użytkownik dotyka i przeciąga po ekranie. Utworzymy klasę o nazwie "PodgladRysowania", która będzie używana jako zawartość dla "MainActivity".

 

Projekt utworzono w AndroidStudio

Więc zacznijmy:

Utwórz nowy projekt File -> New Project. Podczas tworzenia nowego projektu pozostaw domyślne nazwy plików.

 

MainActivity.java

 

package pl.uazz.rysowanie.app;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

    PodgladRysowania podgladRysowania;

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

        podgladRysowania = new PodgladRysowania(this);
        setContentView(podgladRysowania);
        podgladRysowania.requestFocus();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Teraz należy utworzyć nową klasę PodgladRysowania (PodgladRysowania.java) kliknij prawym klawiszem myszki na folderze src/main/java i wybierz polecenie New -> Java Class

 

PodgladRysowanie.java

 

package pl.uazz.rysowanie.app;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

import java.util.ArrayList;
import java.util.List;

public class PodgladRysowania extends View implements View.OnTouchListener {

    private static final String TAG = "PodgladRysowania";

    List<Punkty> punkty = new ArrayList<Punkty>();
    Paint punkt = new Paint();

    public PodgladRysowania(Context context){
        super(context);
        setFocusable(true);
        setFocusableInTouchMode(true);

        this.setOnTouchListener(this);

        punkt.setColor(Color.BLUE);
        punkt.setAntiAlias(true);
    }

    @Override
    public void onDraw(Canvas canvas){
        for (Punkty punkt : punkty){
            canvas.drawCircle(punkt.x, punkt.y, 2, punkt);
        }
    }

    public boolean onTouch(View view, MotionEvent event){
        Punkty punkt1 = new Punkty();
        punkt1.x = event.getX();
        punkt1.y = event.getY();
        punkty.add(punkt1);
        invalidate();
        Log.d(TAG, "punkt: " + punkt1);
        return true;
    }

    class Punkty extends Paint {
        float x,y;

        @Override
        public String toString(){
            return x + ", " + y;
        }
    }

}

 

Nie tworzymy żadnego pliku xml dla UI (Interfejsu Graficznego), ponieważ powyższe dwa pliki są jedynymi istotnymi plikami dla tego przykładu. 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.