Autore Topic: Problema su differenti risoluzioni  (Letto 530 volte)

Offline supernio

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Mac OS X 10.8
Problema su differenti risoluzioni
« il: 03 Maggio 2013, 12:33:48 CEST »
0
Salve, ho già seguito tutte le guide dove viene detto come è possibile adattare il layout alle molteplici risoluzioni android.
Ho creato le 3 cartelle dentro res ovvero large small e xlarge inserendo e adattando nel modo opportuno i file xml di ogni mia acitivty,inoltre ho inserito nel manifest il tag support-screens per abilitare il tutto.
Ma quando avvio la mia app ad esempio su un emulatore 2.7" QVGA 240x320 con fw 2.3.3 mi crasha:
Incollo il Logcat:

Codice: [Seleziona]
05-03 12:22:10.078: E/AndroidRuntime(595): FATAL EXCEPTION: main
05-03 12:22:10.078: E/AndroidRuntime(595): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.busreport/com.busreport.Visualizza}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.os.Looper.loop(Looper.java:123)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread.main(ActivityThread.java:3683)
05-03 12:22:10.078: E/AndroidRuntime(595):         at java.lang.reflect.Method.invokeNative(Native Method)
05-03 12:22:10.078: E/AndroidRuntime(595):         at java.lang.reflect.Method.invoke(Method.java:507)
05-03 12:22:10.078: E/AndroidRuntime(595):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-03 12:22:10.078: E/AndroidRuntime(595):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-03 12:22:10.078: E/AndroidRuntime(595):         at dalvik.system.NativeStart.main(Native Method)
05-03 12:22:10.078: E/AndroidRuntime(595): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.createView(LayoutInflater.java:518)
05-03 12:22:10.078: E/AndroidRuntime(595):         at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
05-03 12:22:10.078: E/AndroidRuntime(595):         at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.Activity.setContentView(Activity.java:1657)
05-03 12:22:10.078: E/AndroidRuntime(595):         at com.busreport.Visualizza.onCreate(Visualizza.java:44)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-03 12:22:10.078: E/AndroidRuntime(595):         ... 11 more
05-03 12:22:10.078: E/AndroidRuntime(595): Caused by: java.lang.reflect.InvocationTargetException
05-03 12:22:10.078: E/AndroidRuntime(595):         at java.lang.reflect.Constructor.constructNative(Native Method)
05-03 12:22:10.078: E/AndroidRuntime(595):         at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.LayoutInflater.createView(LayoutInflater.java:505)
05-03 12:22:10.078: E/AndroidRuntime(595):         ... 21 more
05-03 12:22:10.078: E/AndroidRuntime(595): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.content.res.Resources.loadDrawable(Resources.java:1709)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.View.<init>(View.java:1951)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.View.<init>(View.java:1899)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.view.ViewGroup.<init>(ViewGroup.java:286)
05-03 12:22:10.078: E/AndroidRuntime(595):         at android.widget.LinearLayout.<init>(LinearLayout.java:120)
05-03 12:22:10.078: E/AndroidRuntime(595):         ... 24 more

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Problema su differenti risoluzioni
« Risposta #1 il: 03 Maggio 2013, 13:28:12 CEST »
0
Posta il file del layout
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline supernio

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Mac OS X 10.8
Re:Problema su differenti risoluzioni
« Risposta #2 il: 03 Maggio 2013, 13:29:26 CEST »
0
Visualizza.xml

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/sfondo"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/tv"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ff0000"
        android:textSize="30sp"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="0.69"
        android:padding="10dp" >
    </ListView>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="vertical" >
    </LinearLayout>

</LinearLayout>

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema su differenti risoluzioni
« Risposta #3 il: 03 Maggio 2013, 13:40:19 CEST »
0
Per curiosità, prova a togliere questa riga e riprova:

Codice: [Seleziona]
android:background="@drawable/sfondo"
Se senza lo sfondo gira, allora sai qual'è la causa.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline supernio

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Mac OS X 10.8
Re:Problema su differenti risoluzioni
« Risposta #4 il: 03 Maggio 2013, 14:32:24 CEST »
0
Ti ringrazio è colpa dello sfondo.Dovrei creare più sfondi a seconda del dispositivo(small,large,xlarge)? Non lo adatta da solo?

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Problema su differenti risoluzioni
« Risposta #5 il: 03 Maggio 2013, 14:42:27 CEST »
0
Ti ringrazio è colpa dello sfondo.Dovrei creare più sfondi a seconda del dispositivo(small,large,xlarge)? Non lo adatta da solo?

Per adattarlo lo adatta... il problema è che se ne metti uno piccolo viene sgranato negli schermi grandi (tipo tablet).
Se invece ne metti uno grande, come hai fatto tu, sugli schermi piccoli (che generalmente indicano dispositivi di fascia bassa con poca memoria) ottieni errori come quello che hai nel logcat, di bitmap allocation. Significa che lo sfondo non ci sta nella ram del dispositivo.

Quindi, in definitiva, se usi immagini dovresti fornirle in tre dimensioni diverse, come per i layout :)
Il sito dei developer di android consiglia di usare una immagine vettoriale in modo da rendere più facili le operazioni di ridimensionamento.

http://developer.android.com/guide/practices/screens_support.html Qui tutte le informazioni
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.