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:
Code
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/background_light"
android:orientation="vertical"
android:weightSum="1">
<FrameLayout
android:id="@+id/frameLayoutGameArena"
android:layout_width="match_parent"
android:layout_height="402dp"
android:layout_weight="0.72">
</FrameLayout>
</LinearLayout>
Alles anzeigen
und hier meine dazugehörige Funktion:
Code
public void showDot(){
screenScale = getResources().getDisplayMetrics().density;
gameArena = (ViewGroup)findViewById(R.id.frameLayoutGameArena);
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);
}
Alles anzeigen
Doch wenn ich die App teste taucht kein Punkt auf und die Logfiles geben :
Zitat von logfilesI/GameActivity: gameArenaWidth = 0
I/GameActivity: gameArenaHeight = 0
Mal ganz blöd gefragt:
Was mach ich falsch ?