2010-06-18 3 views
0

Je crée une boîte de dialogue pour agrandir une image,
Cependant, mon contenu est 240px et je voudrais le redimensionner à la largeur de l'écran, à "fill_parent". Pourriez-vous me dire ce qui ne va pas ici? Ma photo reste petite, 240px, pas 480px.le dialogue ne prend pas la taille parente

final Dialog dialog = new Dialog(myview); 
dialog.setContentView(R.layout.zoom); 
dialog.setTitle(""+passInfoNom+" "); 
imgView2 = (ImageView)dialog.findViewById(R.id.ImageZoom); 
imgView2.setImageDrawable(image); 
dialog.show(); 

Mise en page:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#ffffffff" 
> 

<ImageView android:id="@+id/ImageZoom" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
</ImageView> 
</LinearLayout> 
+0

L'imageView occupe-t-elle tout l'espace dans la boîte de dialogue? fill_parent indique à une vue de remplir son parent direct. Quelqu'un en haut de la ligne, comme le dialogue de niveau supérieur, pourrait avoir des instructions pour prendre moins de place. –

Répondre

2

On dirait que vous avez défini le contenu sur « fill_parent » mais vous avez pas encore défini la taille de la boîte de dialogue pour être « fill_parent. » changer cela et vous devriez voir des résultats.

Mais j'ai une question: si vous voulez que la boîte de dialogue de zoom occupe tout l'écran, pourquoi ne commencez-vous pas une nouvelle activité, ou recadrez-vous l'image et définissez-la comme contenu? il me semble bizarre que vous fassiez un zoom dans un dialogue. Google Maps, par exemple, ne fait que zoomer sur la vue existante.

+0

je ne voulais pas remplir toute la hauteur, juste la pleine largeur, et j'aime l'effet de l'interface de dialogue. – NicoMinsk

2

Comme spécifié dans un autre anwser, j'ajuster la taille de mon dialogue en créant ma propre Dialog classe et en définissant sa taille:

public class ZoomZoom extends Dialog 
{ 
    public ZoomZoom(Context context) { 
    super(context); 
} 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.zoom); 
    LayoutParams params = getWindow().getAttributes(); 
    params.width = LayoutParams.FILL_PARENT; 
    //params.height = LayoutParams.FILL_PARENT; 
    params.height = screenLargeur; 
    getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);   
    imgView2 = (ImageView)findViewById(R.id.ImageZoom); 
    imgView2.setImageDrawable(imageZ); 
    imgView2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      dialog.hide(); 
      } 
     }); 
    } 
} 
0

Je ne sais pas si cela a été résolu pour vous, mais vous pouvez également utiliser android: minWidth et android: minHeight, en les réglant par immersion. Par exemple:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/send_chat_layout" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
android:background="#292929" 
android:minWidth="300dip" 
android:minHeight="400dip"> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 

</LinearLayout> 

De ma compréhension, en raison de la façon dont les échelles Android dans la résolution, avec un écran 360x480, le réglage des minutes à 340x460 gardera son aspect aux résolutions plus grandes.

Questions connexes