- Forum-Beiträge: 8
31.05.2017, 17:56:43 via Website
31.05.2017 17:56:43 via Website
Hallo, ich bin neu in der Android Programmierung und übe gerade.
Ich will ein spiel machen, und dafür soll ein punkt an einem zufälligen ort auf dem Bildschirm erscheinen.
Als Raum dafür habe ich ein frame layout eingerichet.
hier ist meine xml:
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light">
android:id="@+id/frameLayoutGameArena"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/frameLayoutColorAndPoits"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
</FrameLayout>
und hier meine dazugehörige Funktion:
public void showDot(){
int gameArenaWidth = gameArena.getWidth();
Log.i("GameActivity","gameArenaWidth = "+ gameArenaWidth);
int gameArenaHeight = gameArena.getHeight();
Log.i("GameActivity","gameArenaHeight = "+ gameArenaHeight);
int dotSize =(int)Math.round(screenScale*50);
int xAxis = (int)(Math.random()*gameArenaWidth-dotSize);
int yAxis = (int)(Math.random()*gameArenaHeight-dotSize);
ImageView imageViewBlackDot = new ImageView(this);
imageViewBlackDot.setImageResource(R.drawable.black_dot_50x50);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(dotSize,dotSize);
params.leftMargin = xAxis;
params.topMargin = yAxis;
params.gravity = Gravity.TOP + Gravity.LEFT;
gameArena.addView(imageViewBlackDot, params);
}
Doch wenn ich die App teste taucht kein Punkt auf und die Logfiles geben :
GameActivity: gameArenaWidth = 0
GameActivity: gameArenaHeight = 0
Mal ganz blöd gefragt:
Was mach ich falsch ?
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.