Autore Topic: Adattare imageView a differenti risoluzioni di schermo  (Letto 817 volte)

Offline The-darkknight85

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Adattare imageView a differenti risoluzioni di schermo
« il: 19 Luglio 2011, 17:53:45 CEST »
0
Salve, ho un problema con l'aspetto grafico della mia app.
Vorrei che le immagini si adattassero a varie risoluzioni di schermo, in modo da risultare di aspetto gradevole, ciò che succede invece é ke le immagini nn si ingrandiscono.

Allego il codice.
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<FrameLayout android:layout_alignParentTop="true" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:id="@+id/globalLayout" android:layout_height="fill_parent" android:layout_gravity="center_horizontal|center" android:layout_width="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_height="fill_parent">
<FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/frameLayout1" android:background="@color/blue_lamma" android:layout_weight="1">
<LinearLayout android:layout_width="match_parent" android:id="@+id/linearLayout2" android:layout_height="fill_parent">
<FrameLayout android:layout_height="match_parent" android:id="@+id/FrameLayout01" android:layout_width="0dp" android:layout_weight="1" android:background="@color/red"></FrameLayout>
<LinearLayout android:id="@+id/frameLayout2" android:layout_gravity="center_vertical" android:layout_height="fill_parent" android:layout_width="0dp" android:layout_weight="8">
<ImageView android:id="@+id/imageView1" android:layout_width="0dp" android:layout_weight="4" android:src="@drawable/lamma" android:layout_gravity="center_vertical" android:layout_height="fill_parent" android:scaleType="centerCrop"></ImageView>
<ImageView android:layout_height="wrap_content" android:id="@+id/imageView2" android:layout_width="0dp" android:layout_weight="2" android:src="@drawable/unipi" android:layout_gravity="center_vertical"></ImageView>
</LinearLayout>
<FrameLayout android:layout_height="match_parent" android:id="@+id/frameLayout3" android:layout_width="0dp" android:layout_weight="1" android:background="@color/red"></FrameLayout>
</LinearLayout>

</FrameLayout>

<FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/frameLayout2" android:layout_weight="7"></FrameLayout>
</LinearLayout>

</FrameLayout>

Un grazie anticipato a chiunque vorrà aiutarmi, buon proseguimento!  :-)
« Ultima modifica: 19 Luglio 2011, 17:58:20 CEST da The-darkknight85 »

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Adattare imageView a differenti risoluzioni di schermo
« Risposta #1 il: 19 Luglio 2011, 23:10:55 CEST »
+1
Da quello che so io, le immagini non si adattano automaticamente ma bisogna effettuare un resize da codice. L'XML ti serve solo per posizionarle correttamente nel layout, non per modificarne le dimensioni.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Adattare imageView a differenti risoluzioni di schermo
« Risposta #2 il: 20 Luglio 2011, 11:47:30 CEST »
+1
Leggiti questo: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

Solo che lo scaling che fa non necessariamente soddisfa i tuoi requisiti...
In caso non bastasse, allora fai uno scaling da codice.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline The-darkknight85

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Adattare imageView a differenti risoluzioni di schermo
« Risposta #3 il: 20 Luglio 2011, 17:00:39 CEST »
0
Ho risolto creando un nuovo tipo di vista, come indicato in una guida scovata cercando per ore in internet, nel codice che segue R.drawable.lamma é l'immagine da mostrare...
Funziona benissimo  8-)
Codice: [Seleziona]
public class Banner extends View {

          private final Drawable logo;

          public Banner(Context context) {
            super(context);
            logo = context.getResources().getDrawable(R.drawable.lamma);
            setBackgroundDrawable(logo);
          }

          public Banner(Context context, AttributeSet attrs) {
            super(context, attrs);
            logo = context.getResources().getDrawable(R.drawable.lamma);
            setBackgroundDrawable(logo);
          }

          public Banner(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            logo = context.getResources().getDrawable(R.drawable.lamma);
            setBackgroundDrawable(logo);
          }

          @Override protected void onMeasure(int widthMeasureSpec,
              int heightMeasureSpec) {
            int width = MeasureSpec.getSize(widthMeasureSpec);
            int height = width * logo.getIntrinsicHeight() / logo.getIntrinsicWidth();
            setMeasuredDimension(width, height);
          }
        }