Fabian
- Forum-Beiträge: 144
14.09.2013, 14:38:50 via Website
14.09.2013 14:38:50 via Website
Hey liebe Community,
im Moment verzweifle ich an einer für Euch wahrscheinlich simplen Aufgabe.
Ich möchte gerne eine Bitmap in eine SurfaceView zeichnen, versuchter Code:
An den fett gedruckten Stellen verstehe ich allerdings nicht, warum ich hier 2 mal ein Canvas Object erstellen muss und finde die Antwort auch nicht bei Google -.- .
Würdet ihr mir bitte helfen
grüße Fabian
im Moment verzweifle ich an einer für Euch wahrscheinlich simplen Aufgabe.
Ich möchte gerne eine Bitmap in eine SurfaceView zeichnen, versuchter Code:
1public class MainActivity extends Activity {
2 myView theView;
3
4 @Override
5 protected void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 theView = new myView(this);
8 setContentView(theView);
9 }
10
11 @Override
12 public boolean onCreateOptionsMenu(Menu menu) {
13 getMenuInflater().inflate(R.menu.main, menu);
14 return true;
15 }
16
17}
2 myView theView;
3
4 @Override
5 protected void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 theView = new myView(this);
8 setContentView(theView);
9 }
10
11 @Override
12 public boolean onCreateOptionsMenu(Menu menu) {
13 getMenuInflater().inflate(R.menu.main, menu);
14 return true;
15 }
16
17}
1public class myView extends SurfaceView implements Runnable {
2
3 SurfaceHolder surfaceHolder;
4 Bitmap bmp;
5
6 public myView(Context context) {
7 super(context);
8
9 surfaceHolder = getHolder();
10 surfaceHolder.addCallback(new SurfaceHolder.Callback() {
11
12 @Override
13 public void surfaceDestroyed(SurfaceHolder holder) {
14
15 }
16
17 @Override
18 public void surfaceCreated(SurfaceHolder holder) {
19 Canvas canvas = surfaceHolder.lockCanvas();
20 onDraw(canvas);
21 surfaceHolder.unlockCanvasAndPost(canvas);
22
23 }
24
25 @Override
26 public void surfaceChanged(SurfaceHolder holder, int format,
27 int width, int height) {
28
29 }
30 });
31 bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
32 }
33
34 @Override
35 protected void onDraw(Canvas canvas) {
36 super.onDraw(canvas);
37 canvas.drawColor(Color.WHITE);
38 canvas.drawBitmap(bmp, 0, 0, null);
39
40 }
41
42 @Override
43 public void run() {
44
45 }
46
47}
2
3 SurfaceHolder surfaceHolder;
4 Bitmap bmp;
5
6 public myView(Context context) {
7 super(context);
8
9 surfaceHolder = getHolder();
10 surfaceHolder.addCallback(new SurfaceHolder.Callback() {
11
12 @Override
13 public void surfaceDestroyed(SurfaceHolder holder) {
14
15 }
16
17 @Override
18 public void surfaceCreated(SurfaceHolder holder) {
19 Canvas canvas = surfaceHolder.lockCanvas();
20 onDraw(canvas);
21 surfaceHolder.unlockCanvasAndPost(canvas);
22
23 }
24
25 @Override
26 public void surfaceChanged(SurfaceHolder holder, int format,
27 int width, int height) {
28
29 }
30 });
31 bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
32 }
33
34 @Override
35 protected void onDraw(Canvas canvas) {
36 super.onDraw(canvas);
37 canvas.drawColor(Color.WHITE);
38 canvas.drawBitmap(bmp, 0, 0, null);
39
40 }
41
42 @Override
43 public void run() {
44
45 }
46
47}
An den fett gedruckten Stellen verstehe ich allerdings nicht, warum ich hier 2 mal ein Canvas Object erstellen muss und finde die Antwort auch nicht bei Google -.- .
Würdet ihr mir bitte helfen
grüße Fabian
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.