ajouter imageview dynamiquement à vue

je suis prise de jeu android qui utilisent la classe view.je ne suis pas à l'aide de mise en page.toutes mes images est un dessin avec de la toile.Maintenant mon problème est que je ne peut pas donner une image bitmap

palpable événement comme vous le savez.je suis en train d'ajouter imageview de façon dynamique pour ma classe de vue

utilisation tactile de l'événement.pourquoi j'essaie d'ajouter imageview dynamiquement?Parce que je ne suis pas à l'aide de

mise en page.mais je ne pouvais pas.est-il un corps?

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();
}
}
}
Si ma réponse vous aide à vous alors s'il vous plaît accepter, et il va aider les autres aussi.

OriginalL'auteur Tunç Doğan | 2012-12-22