Я не могу понять, почему моя картинка не отображается правильно - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть ImageView, который я установил в центре внутри LinearLayout базовой страницы в моем файле xml.Я делаю снимок, выявляю лица и показываю его на моем ImageView.Проблема в том, что он всегда отображается на левой стороне моего телефона (у меня приложение постоянно установлено в режим portrait) ... Я хочу, чтобы width был fill_parent, и я хочу, чтобы height былисправлено, но любое внесенное мной изменение никак не влияет на его отображение.

Вот мой xml код:

<ImageButton 
     android:id="@+id/YesButtonTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/yesface"  
     android:layout_gravity="top|center" />

<ImageView
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@+id/image_view"
     android:gravity="center"
     android:layout_weight="1.0"/>

<TextView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/message"
     android:gravity="center_horizontal"
     android:padding="10dip"/>

 <Button
     android:layout_gravity="center_horizontal"
     android:layout_width="fill_parent"
     android:textStyle="bold" 
     android:id="@+id/action_button" 
     android:selectAllOnFocus="false" 
     android:layout_height="100dip" 
     android:text="Click here to crop detected face"/>

Вот где я устанавливаю bitmap на ImageView:

((Button) findViewById(R.id.action_button))
        .setOnClickListener(btnClick);
 mTheMessage.setText(R.string.faceMessage);
mThePicture = (ImageView) findViewById(R.id.image_view);
mThePicture.setImageBitmap(bitmap565);

bitmap565 определяется как:

Bitmap bitmap565 = Bitmap.createBitmap(width, height, Config.RGB_565);

, затем сжимается:

try {
    FileOutputStream fos = new FileOutputStream(filepath);
    bitmap565.compress(CompressFormat.JPEG, 90, fos);
    fos.flush();
    fos.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Перед тем, как отобразить bmp на ImageView.У кого-нибудь есть идеи, почему он не будет себя вести и будет ли ImageView правильно?

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

Установите layout_width = "wrap_content", а не fill_parent, тогда только вы получите эффект родительского макета. Гравитация

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/image_view"
        android:gravity="center"
        android:layout_weight="1.0"/>
0 голосов
/ 23 ноября 2010

Это сработало для меня, может быть, это будет работать и для вас.

 <ImageView
    android:id="@+id/image_id"
    android:padding="2dip"
    android:layout_width="fill_parent" 
     android:layout_height="wrap_content"
     android:scaleType="centerInside"
     android:layout_weight="1"/>

Что касается того, почему ваш xml не работает.Я посмотрел, и все кажется хорошо, за исключением, может быть, для Android: гравитация, которая, кажется, ничего не делает в случае изображений.

...