2011-05-06 9 views
0

J'essaie de définir la taille et la position d'une image (image2) sur l'écran afin qu'elle soit dans la même position et la même taille par rapport à l'image d'arrière-plan (image1) quelle que soit la taille de l'écran. Pour ce faire, je tente de modifier les paramètres de mise en page de image2 dans ma méthode onCreate de ma Activity classe:Comment régler la taille et la position d'une image?

public class Game_main extends Activity{ 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 



     ImageView image2= (ImageView) findViewById(R.id.seed1); 
     ImageView image1= (ImageView) findViewById(R.id.board_rev1); 


     RelativeLayout rl = (RelativeLayout) findViewById(R.id.rlGame); 
     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((image1.getWidth())/4, (image2.getHeight())/4); 
     params.leftMargin = (image1.getWidth())/2; 
     params.topMargin = (image1.getHeight())/4; 
     rl.addView(image2, params); 
     setContentView(R.layout.gamerev); 


} 


} 

Mais quand mon application va à cette activité, je reçois une erreur indiquant que l'application a été arrêtée de façon inattendue. Ensuite, je dois forcer la fermeture de l'application. Pourquoi cela arriverait-il? Y a-t-il quelque chose qui me manque? ou y a-t-il une meilleure façon de le faire?

L'erreur dans le logcat est:

E/AndroidRuntime (296): java.lang.RuntimeException: Impossible de démarrer l'activité Co mponentInfo {com.soft.tobi/com.soft.tobi.Game_main} : java.lang.NullPointerExc eption

Mais je ne vois pas pourquoi tout serait nulle parce que tous les ids existent dans mon fichier xml:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/rlGame" 
    > 
    <ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/board_rev1" android:src="@drawable/board_rev1"></ImageView> 
    <ImageView android:id="@+id/seed1" android:src="@drawable/seed1" android:adjustViewBounds="true" android:layout_height="200dp" android:layout_marginTop="165dp" android:layout_width="200dp" android:layout_marginLeft="30dp"></ImageView> 

</RelativeLayout> 

Merci

+1

où vous faites cela? (si dans onCreate cela ne fonctionnera pas puisque getWidth retournera zéro). Quelle est l'erreur dans le logcat? vous n'avez pas fourni suffisamment d'informations pour vous aider. – jkhouw1

+0

Je le fais dans OnCreate. Comment puis-je obtenir le logcat? J'ai essayé d'exécuter $ adb logcat comme dans: http://developer.android.com/guide/developing/tools/logcat.html mais cela n'a pas fonctionné. Y a-t-il d'autres informations dont vous avez besoin? – Tobi

+0

J'ai mis à jour ma question pour inclure toutes les informations nécessaires – Tobi

Répondre

0

Avez-vous mis un bloc try catch et essayé de le déboguer? Il semble être quelque chose retourne null ..

0

Je pense que problème est la taille de imageview

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((image1.getWidth())/4, (image2.getHeight())/4); 

peut-être revenir 0 si ce problème est occur..try il

Questions connexes