Autore Topic: widget per tutte le risoluzioni  (Letto 1298 volte)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
widget per tutte le risoluzioni
« il: 21 Luglio 2011, 16:23:54 CEST »
0
E' la prima volta che mi cimento nella creazione di una widget, ho seguito un tutorial ma non capisco come fare una widget adatta a tutti i device.

La widget che vorrei fare è tutto il display in orizzontale e circa 80dip in altezza.

File xml: widget_info.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:updatePeriodMillis="180000"
        android:initialLayout="@layout/widget_layout"
        android:minHeight="72dip" android:minWidth="150dip">
</appwidget-provider>

layout

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="400dip"
        android:layout_height="80dip"
        android:orientation="vertical"
       
        android:background="@drawable/tiles" >
        <TextView android:text="Static Text"
        android:layout_marginLeft="20dip"
                android:id="@+id/TextView01" android:layout_width="wrap_content"
                android:layout_height="wrap_content"
               
                android:layout_gravity="center"></TextView>
</LinearLayout>


Ho provato con android:layout_width="fill_parent" ma non funziona.

Aumentando nel file xml android:minWidth="350dip" non è adatto a tutte le risoluzioni.

Il layout posso farlo differente creando le cartelle res/layout-small ma l' xml come faccio a farlo "dinamico"
La domanda stupida è quella che non si fa

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:widget per tutte le risoluzioni
« Risposta #1 il: 21 Luglio 2011, 16:58:14 CEST »
0
Ok mi ero dimenticato che è tutto a celle

(1x74)-2

(2x74)-2

(3x74)-2

(4x74)-2

Poi il layout interno è ovvio che devo adattarlo.
La domanda stupida è quella che non si fa

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:widget per tutte le risoluzioni
« Risposta #2 il: 21 Luglio 2011, 17:31:20 CEST »
0
guarda che funziona anche quì il discorso dei layout. (layout-ldpi, layout-hdpi, layout-land.........)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:widget per tutte le risoluzioni
« Risposta #3 il: 21 Luglio 2011, 17:36:58 CEST »
0
Si lo so... ma non mi occorre nel senso che con un RelativeLayout dovrei risolvere... quindi solo per conferma..

scrivendo miWidth="294dp" minHeight="72dp"

si crea una widget 4x1 per qualsiasi device poi il layout se ne possono avere tanti quanto le risoluzioni oppure uno che si adatta-

E' giusto no?

Grazie
La domanda stupida è quella che non si fa

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:widget per tutte le risoluzioni
« Risposta #4 il: 21 Luglio 2011, 17:44:01 CEST »
0
si, è corretto.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:widget per tutte le risoluzioni
« Risposta #5 il: 21 Luglio 2011, 17:48:03 CEST »
0
Ok il problema è diverso adesso. In un progetto a parte funziona tutto ma se porto il codice nella mia app... il widget rimane tutto nero e mi da errore come se non caricasse nulla. Eppure ho ripetuto tutto uguale, la widget compare nella lista, il layout è solo un testo per adesso...

cosa può essere?
La domanda stupida è quella che non si fa

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:widget per tutte le risoluzioni
« Risposta #6 il: 21 Luglio 2011, 17:57:43 CEST »
+1
posta un po' di codice, la sfera di cristallo mi si è rotta.....
 :-P
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:widget per tutte le risoluzioni
« Risposta #7 il: 25 Luglio 2011, 10:04:18 CEST »
0
Rieccomi scusami... era un problema per l' ufficio e alle 18 essendo già uscito non avevo il codice.

Allora ecco cosa ho fatto.

Codice (Java): [Seleziona]
package xxxxxxx;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;

public class MercatinoWidget extends AppWidgetProvider {

        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                        int[] appWidgetIds) {
               
        }
}

Questa è la classe principale..

Questo è l' xml creato in /res/xml

widget_info.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
 xmlns:android="http://schemas.android.com/apk/res/android">
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:updatePeriodMillis="190000" android:minHeight="72dp"
    android:initialLayout="@layout/widget_layout" android:minWidth="294dp"></appwidget-provider>    
</appwidget-provider>

Questo è l' xml del layout creato in /res/layout

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="190dp" android:layout_height="70dp"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:background="@drawable/backheader">
        <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Prova Widget"
                android:id="@+id/editText1" android:layout_weight="1">
        </TextView>

</LinearLayout>

Ecco il reicever nel Manifest

Codice (XML): [Seleziona]
<receiver android:name="MercatinoWidget" android:label="@string/app_name">
                        <intent-filter>
                                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                        </intent-filter>
                        <meta-data android:name="android.appwidget.provider"
                                android:resource="@xml/widget_info" />
                </receiver>

la widget mi da errore di caricamento...

La domanda stupida è quella che non si fa

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:widget per tutte le risoluzioni
« Risposta #8 il: 25 Luglio 2011, 10:13:24 CEST »
0
Mi rispondo da solo... leggendo meglio e con più calma mi accordo che l' xml della widget era sbagliato...

Grazie ora funziona :)
La domanda stupida è quella che non si fa