Auf eingeladenem Bild zeichnen

P

Proletheus

Neues Mitglied
0
Hallo meine Lieben,

Bin ganz frisch hier im Forum und fast genauso neu in der Android Programmierung. Ich bastle derzeit an ner App, beider ich ein Bild einladen möchte und dann auf diesem rumzukrakeln. Leider waren meine Versuche bisher weniger erfolgreich. Aktueller Stand ist folgender. Ich bekomme den Hintergrund von meinem Canvas nicht transparent, bzw der wird nur schwarz und ich kann nicht mehr drauf zeichnen. mit ner anderen Hintergrundfarbe funktioniert alles, man kann aber dann natürlich auch das eingeladene Bild im Imageview nicht sehen. Kann mir einer von euch sagen, was ich falsch mache?
Merci schonmal

Code:
public class Feldbuch extends ActionBarActivity  {
    
    ImageView bild;
    File Pfad;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(new Zeichenfunktion(this));         
//        setContentView(R.layout.activity_feldbuch);
        
        bild = (ImageView) findViewById(R.id.imageView1);
    }
    



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

Code:
public class Zeichenfunktion extends View implements OnTouchListener
{
  Bitmap bitmap;
  Canvas bitmapCanvas;
  ImageView bild;
  File Pfad;

    boolean isInitialized;
    Paint paint = new Paint();

    public Zeichenfunktion(Feldbuch context)
    {
        super(context);
        setFocusable(true);
        setFocusableInTouchMode(true);

        this.setOnTouchListener(this);

        paint.setColor(Color.GREEN);
        paint.setAntiAlias(true);
        paint.setStyle(Style.FILL_AND_STROKE);
        
        isInitialized = false;
    }


    private void init()
    {
        bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.RGB_565);
        
        bitmapCanvas = new Canvas();
        bitmapCanvas.setBitmap(bitmap);
        bitmapCanvas.drawColor(Color.TRANSPARENT);
        
        isInitialized = true;

    }
    
    @Override
    public void onDraw(Canvas canvas)
    {
        if (!isInitialized)
            init();
        
        canvas.drawBitmap(bitmap, 0, 0, paint); 
    }

    public boolean onTouch(View view, MotionEvent event)
    {
        bitmapCanvas.drawCircle(event.getX(), event.getY(), 5, paint);

        
        invalidate();
        return true;
    }




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);      
    }
    if (item.toString().equals("Löschen"));
    {
        
    }
    if (item.toString().equals("Speichern"));
    {
        
    }
    if (item.toString().equals("Laden"));
    {
    Pfad = new File("/mnt/sdcard/external_sdcard/Feldbuch/Riss.jpg");    
    bild.setImageURI(Uri.fromFile(Pfad));    
    }
    return true;
    }
}
Die anderen Funktionen sind bisher nochnicht geschrieben, will erstmal die beiden hinbekommen
 
Zuletzt bearbeitet von einem Moderator:
Und schwupps in den Entwicklerbereich geschubst ;)
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.051
jogimuc
J
M
  • MikelKatzengreis
Antworten
5
Aufrufe
132
swa00
swa00
B
Antworten
4
Aufrufe
495
bb321
B
Zurück
Oben Unten