Punkte auf einem ImageView zeichnen

  • Antworten:1
Hans Peter
  • Forum-Beiträge: 13

21.03.2012, 13:45:14 via Website

Hi,

ich möchte in meiner App auf einem ImageView welches eine Bild zeigt Punkte zeichnen. Also der User soll mit seinem Finger eine Stelle im Bild markieren können. Nun habe ich schon mit Canvas herumprobiert aber leider kein Erfolg gehabt.
Entweder ist der Punkt zu sehen aber dafür das Bild nicht mehr oder man sieht das Bild aber keine Punkte.

Ich habe folgenden Code:

1package de.mazet.guiapp;
2
3import android.app.Activity;
4import android.graphics.Bitmap;
5import android.graphics.Canvas;
6import android.graphics.Color;
7import android.graphics.Paint;
8import android.graphics.Paint.Style;
9import android.os.Bundle;
10import android.view.MotionEvent;
11import android.view.View;
12import android.view.View.OnTouchListener;
13import android.widget.ImageView;
14import android.widget.LinearLayout;
15import android.widget.TextView;
16import android.widget.Toast;
17
18public class controlActivity extends Activity implements OnTouchListener {
19 private TextView info;
20 private ImageView image;
21 private Canvas canvasbitmap;
22 private Paint paint = new Paint();
23 private Bitmap buffer;
24 private LinearLayout llayout;
25 private drawView drawview;
26 @Override
27
28 protected void onCreate(Bundle savedInstanceState) {
29 super.onCreate(savedInstanceState);
30
31
32 setContentView(R.layout.startlayout);
33
34 image = (ImageView)findViewById(R.id.imageViewfarbraum2);
35 info = (TextView)findViewById(R.id.textViewinfo2);
36 image.setOnTouchListener(this);
37
38 }
39
40 public boolean onTouch(View v, MotionEvent event) {
41
42 Toast.makeText(this, "X/Y Position: "+event.getX()+" / "+event.getY() +" / "+image.getHeight(), Toast.LENGTH_LONG).show();
43 //buffer = Bitmap.createBitmap(image.getWidth(),image.getHeight(),Config.RGB_565);
44 //buffer = BitmapFactory.decodeResource(getResources(), R.drawable.farbraum).copy(Bitmap.Config.ARGB_8888, true);
45 Paint paint = new Paint();
46 paint.setColor(Color.WHITE);
47 paint.setAntiAlias(true);
48 paint.setStyle(Style.FILL_AND_STROKE);
49 canvasbitmap = new Canvas(buffer);
50 canvasbitmap.drawCircle(event.getX(), event.getY(), 5, paint);
51
52 image.setImageBitmap(buffer);
53
54 return true;
55
56 }
57
58
59}

Und meine XML sieht so aus
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout android:layout_width="match_parent"
3 android:layout_height="match_parent"
4 android:orientation="vertical"
5 android:id="@+id/llayoutcontrol" xmlns:android="http://schemas.android.com/apk/res/android">
6
7
8 <RelativeLayout
9 android:id="@+id/relativeLayout1"
10 android:layout_width="match_parent"
11 android:layout_height="match_parent" >
12
13 <ImageView
14 android:id="@+id/imageViewfarbraum2"
15 android:layout_width="match_parent"
16 android:layout_height="match_parent"
17 android:layout_alignParentTop="true"
18 android:layout_centerHorizontal="true"
19 android:src="@drawable/farbraum" />
20
21 <TextView
22 android:id="@+id/textViewinfo2"
23 android:layout_width="wrap_content"
24 android:layout_height="150dp"
25 android:layout_alignParentBottom="true"
26 android:layout_alignParentLeft="true"
27 android:layout_alignParentRight="true"
28 android:gravity="center"
29 android:background="#FFFFFF"
30 android:text="TextView" />
31
32 </RelativeLayout>
33
34</LinearLayou

Würde mich freuen wenn mir jemand mal auf die Sprünge helfen könnte.

Grüße

Antworten
John Do
  • Forum-Beiträge: 36

21.03.2012, 16:43:35 via Website

Wo ist deine onDraw?

Antworten