hinzufügen Bildansicht dynamisch anzeigen

dass ich android-Spiele, die über das view-Klasse.ich bin nicht mit layout.alle meine Bilder ist das zeichnen mit canvas.Nun mein problem ist ich kann nicht geben Sie eine bitmap

touchable Fall, wie Sie wissen.ich bin versucht, hinzuzufügen Bildansicht dynamisch zu meiner view-Klasse zu

verwenden berührbare Veranstaltung.warum ich versuche, um Bildansicht dynamisch?Weil ich bin nicht mit

layout.aber ich konnte nicht.gibt es irgendwelche Körper zu helfen?

here is my code:


package com.example.poolmaster;

import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
    private int cuePosx,cuePosy;
    int cueHeight,cueWeight;
    double rotatingAngle;
    int height;
    int wwidth;
    int cueHeight2,cueWeight2;
    Bitmap table,stick,raise;
    ImageView button = new ImageView(this);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        rotatingAngle=0;
        DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
         height = displaymetrics.heightPixels;
         wwidth = displaymetrics.widthPixels;
         cueHeight2=height/2;
         cueWeight2=wwidth/2;
        System.out.println("**************************************");
        System.out.println("height " +height);
        System.out.println("weight" +wwidth);
        System.out.println("**************************************");


        //Set generic layout parameters
         //Modify this

        GamePlay custom = new GamePlay(this);


        setContentView(custom);


       //setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    @Override
    public boolean onTouchEvent(MotionEvent ev) {


        if(ev.getAction() == MotionEvent.ACTION_MOVE){
            //cuePosy+=10;
            //System.out.println("xCORDİNATES!!!! " +ev.getX());
            //System.out.println("yCORDİNATES!!!! " +ev.getY());
            rotatingAngle=getAngle(ev.getX(), ev.getY());
            System.out.println("Angle " +rotatingAngle);

        }
        if(ev.getAction()==MotionEvent.ACTION_DOWN){
            System.out.println("****************** ACTİON DOWN ****************");
            //cueHeight2+=10;
            //cueWeight2+=20;
            //cuePosy=320;
        }
        if(ev.getAction()==MotionEvent.ACTION_UP){
            System.out.println("****************** ACTİON DOWN ****************");
            //cueHeight2-=10;
            //cueWeight2-=20;
            //cuePosy=320;
        }
        return true;
    }
    private double getAngle(double xTouch, double yTouch) {
        double theta;

        theta=  Math.toDegrees( Math.atan2( height/2-yTouch , xTouch-wwidth/2) );

        return theta;

    }



    public class GamePlay extends View{

        public GamePlay(Context context) {
            super(context);
            //TODO Auto-generated constructor stub
            table=BitmapFactory.decodeResource(getResources(), R.drawable.bg);
            table= Bitmap.createScaledBitmap(table, wwidth, height, true);
            stick=BitmapFactory.decodeResource(getResources(), R.drawable.stick);

            raise=BitmapFactory.decodeResource(getResources(), R.drawable.raise);
            cueHeight=stick.getHeight();
            System.out.println("ıstaka " +cueHeight);
            cueWeight=stick.getWidth();
            cuePosx=wwidth/2;
            cuePosy=height-cueHeight-180;
        }
          @SuppressLint({ "DrawAllocation", "DrawAllocation" })
        @Override
            public void onDraw(Canvas canvas) {
                super.onDraw(canvas);

                Matrix matrix = new Matrix();
                matrix.setTranslate(cueWeight2, cueHeight2);
                matrix.postRotate((float)rotatingAngle,cueWeight2, cueHeight2); //anti-clockwise by 90 degrees

                //create a new bitmap from the original using the matrix to transform the result
                Bitmap rotatedBitmap = Bitmap.createBitmap(stick , 0, 0, stick .getWidth(), stick .getHeight(), matrix,false);


                canvas.save(); //Save the position of the canvas.
                canvas.restore();

                    //Rotate the canvas.
              canvas.drawBitmap(table, 0, 0, null); //Draw the ball on the rotated canvas.
              canvas.drawBitmap(stick, matrix,null);
              canvas.drawBitmap(raise, 0, 0,null);
              invalidate();


          }

    }
}
Wenn meine Antwort Ihnen hilft, dann bitte akzeptieren Sie es, so hilft es anderen auch.

InformationsquelleAutor Tunç Doğan | 2012-12-22

Schreibe einen Kommentar