CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Varioflex con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 35 Thanks ricevuti nell'ultimo mese

Pagina 1 di 4 123 ... ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 34
Discussione:

creare clipdrawable su un'imageview per barra progresso

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    70

    Ringraziamenti
    12
    Ringraziato 2 volte in 2 Posts
    Predefinito

    creare clipdrawable su un'imageview per barra progresso

    buona sera a tutti , vorrei creare un'applicazione semplice dove cliccando su un pulsante avanzi una bara di progresso , tramite una guida ho realizato + o - la stessa cosa , ma non avanza un imageview ma lo stesso button pulsante apparendo piano piano dopo ogni click su esso .oggi cercando su internet ho trovato un'altra guida
    il link : Drawable Resources | Android Developers per comodità vi copio il codice

    example:
    XML file saved at res/drawable/clip.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />
    </shape>

    The following layout XML applies the clip drawable to a View:
    <ImageView
    android:id="@+id/image"
    android:background="@drawable/clip"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

    The following code gets the drawable and increases the amount of clipping in order to progressively reveal the image:
    ImageView imageview = (ImageView) findViewById(R.id.image);
    ClipDrawable drawable = (ClipDrawable) imageview.getDrawable();
    drawable.setLevel(drawable.getLevel() + 1000);

    Increasing the level reduces the amount of clipping and slowly reveals the image. Here it is at a level of 7000:


    Note: The default level is 0, which is fully clipped so the image is not visible. When the level is 10,000, the image is
    not clipped and completely visible.
    quest'ultimo sia implementandolo in qualche maniera al precedente e con progetto nuovo ho problemi ... mi potete aiutare ? grazie mille

  2.  
  3. #2
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da al3x88 Visualizza il messaggio

    quest'ultimo sia implementandolo in qualche maniera al precedente e con progetto nuovo ho problemi ... mi potete aiutare ? grazie mille
    Eh si... bhe... che problemi? Eccezioni? Non funza? Sciopa l'emulatore?

  4. #3
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    70

    Ringraziamenti
    12
    Ringraziato 2 volte in 2 Posts
    Predefinito

    ciao , mi spiego un po' meglio ...
    eseguendo una guida trovata in rete sono riuscito a creare un clipdrawable , ma come barra di avanzamento è lo stesso pulsante , ora vorrei invece premendo un pulsante vedere una barra sotto (in pratica quindi dovrei creare un clipdrawable con un imageview )
    nel sito linkato sopra ho trovato un procedimento (seguendo passo passo cmq non funziona.di seguito vi elenco tutti i passaggi che faccio
    ---
    creo un nuovo progetto android con eclipse (ultima versione elios con adt 0.9.7)
    con nome progetto "ClipTest"
    build target : android2.2
    application name : "ClipTest" package = "it.apogeo.android.cap03.cliptest"
    createActivity: .ClipTestActivity
    min sdk version 8
    subio mi arriva questo errore
    "project "ClipTest" is missing required source folder "gen"
    , ma risolvo subito cliccando sulla scritta dell'errore , nella tendina quick fix poi pulsante finish , sunto android2.2 e tutto torna ok
    in eclipse creo nella cartella del progetto - res una nuova cartella di nome "drawable" (dentro questa inerisco un immagine "android.png" che sarà la barra di scorrimento in questo caso è un immagine con esempio del robottino android)creo un nuovo file xml con nome "clip.xml" e dentro inserisco con copia incolla il codice
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />
    </shape>
    quindi chiudendo arrivano 3 errori
    1. error: Error parsing XML: no element found
    2. error: Error parsing XML: not well-formed (invalid token)
    3. The markup in the document following the root element must be well-formed.
    anche questi 3 li riesco subito a eliminare aggiungendo semplicemente una ">" nella righa
    <shape> xmlns:android="http://schemas.android.com/apk/res/android"
    a questo punto (sempre in eclipse ) dentro la cartella "layout" apro il file "main.xml" ed inserisco con copia incolla
    <ImageView
    android:id="@+id/image"
    android:background="@drawable/clip"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />
    e salvo dinuovo il file modificato così
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <ImageView
    android:id="@+id/image"
    android:background="@drawable/clip"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />
    </LinearLayout>
    per sicurezza controllo il file r.java che si trova in "gen" - "it.apogeo.android.cap03.cliptest"
    di seguito posto il contenuto che sembra ok anche gli ultimi elementi dell'immagine "android.png" e del file clip.xml sono presenti
    /* AUTO-GENERATED FILE. DO NOT MODIFY.
    *
    * This class was automatically generated by the
    * aapt tool from the resource data it found. It
    * should not be modified by hand.
    */

    package it.apogeo.android.cap03.cliptest;

    public final class R {
    public static final class attr {
    }
    public static final class drawable {
    public static final int android=0x7f020000;
    public static final int clip=0x7f020001;
    public static final int icon=0x7f020002;
    }
    public static final class id {
    public static final int image=0x7f050000;
    }
    public static final class layout {
    public static final int main=0x7f030000;
    }
    public static final class string {
    public static final int app_name=0x7f040001;
    public static final int hello=0x7f040000;
    }
    }
    ora si arriva alla parte che presenta problemi cioè quando devo inserire questo codice
    ImageView imageview = (ImageView) findViewById(R.id.image);
    ClipDrawable drawable = (ClipDrawable) imageview.getDrawable();
    drawable.setLevel(drawable.getLevel() + 1000);
    se sbaglio correggetemi , credo che questo codice vada messo in "src" - "it.apogeo.android.cap03.cliptest" dentro il file "ClipTestActivity.java"
    appena apro il file "ClipTestActivity.java" si presenta questo schermata che riporto sotto
    package it.apogeo.android.cap03.cliptest;

    import android.app.Activity;
    import android.os.Bundle;

    public class ClipTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    }
    }
    inserisco la parte di codice nuova subito prima delle due parentesi graffe finali subitto arrivano degli errori che vedo alla sinistra del codice appena incollato , ma salvando appaiono bene nella finestra problem di seguito riporto i nuovi errori
    1. ClipDrawable cannot be resolved to a type
    2. ClipDrawable cannot be resolved to a type
    3. ImageView cannot be resolved to a type
    4. ImageView cannot be resolved to a type

    come potrei risolvere questi problemi , cliccando sulla scritta dell'errore e quick fix mi appaiono molte possibilità ...

    Uploaded with ImageShack.us

    ...vi ringrazio anticipatamente . ciao.

  5. #4
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da al3x88 Visualizza il messaggio
    inserisco la parte di codice nuova subito prima delle due parentesi graffe finali subitto arrivano degli errori che vedo alla sinistra del codice appena incollato , ma salvando appaiono bene nella finestra problem di seguito riporto i nuovi errori
    1. ClipDrawable cannot be resolved to a type
    2. ClipDrawable cannot be resolved to a type
    3. ImageView cannot be resolved to a type
    4. ImageView cannot be resolved to a type

    come potrei risolvere questi problemi
    ...vi ringrazio anticipatamente . ciao.
    Bhe, questo mi sembra un semplice problema di import.
    ClipDrawable e ImageView sono due classi presenti nelle librerie android, ma il tuo codice "non sa dove trovarle"

    Molto semplicemente, a inizio codice, accanto alle righe di import già presenti,
    aggiungi:

    import android.graphics.drawable.ClipDrawable;
    import android.widget.ImageView;

    che poi è l'opzione 1 delle soluzioni date da eclipse.

    Per quello che riguarda clip.xml che riporti sopra la tua fix mi appare un po' "curiosa"... infatti il motivo per cui il tuo xml risulta malformato è che chiude due volte la tag e la apre una sola. In pratica è sufficiente cancellare il nodo di chiusura shape sotto.

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />
    </shape>

    Purtroppo su questo tipo di oggetti android non ho ancora molta dimestichezza, quindi mi limito a correggere la sintassi xml...

  6. Il seguente Utente ha ringraziato Cymon per il post:

    al3x88 (02-08-10)

  7. #5
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    70

    Ringraziamenti
    12
    Ringraziato 2 volte in 2 Posts
    Predefinito

    ciao Cymon . ti ringrazio , ho appena editato il codice come mi hai consigliato è gli errori sono spariti , l'unico appunto è che nel file clip.xml se modificavo così
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />
    vengono fuori due errori
    1. error: Error parsing XML: no element found
    2. XML document structures must start and end within the same entity.

    invece se scrivo il codice
    <?xml version="1.0" encoding="UTF-8"?>
    <shape> xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left"
    </shape>
    tutti gli errori scompaiono .

    ho provato velocemente a testare il tutto con l'sdk , il programma viene importato , ma quando clicco sull'icona dell'applicazione arriva il messaggio d'errore
    the application ClipTest(process it.apogeo.android.cap3.cliptest) has stopped unexpectedly. please try again
    domani mattina provo ancora a vedere ... ora sto quasi dormendo inpiedi ... ciao buona notte.

  8. #6
    Androidiano


    Registrato dal
    May 2009
    Messaggi
    250

    Ringraziamenti
    2
    Ringraziato 30 volte in 23 Posts
    Predefinito

    Per me è giusto questo

    Se ti da errori devi aver sbagliato qualcos'altro....

  9. #7
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    70

    Ringraziamenti
    12
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da BitBerzerkir Visualizza il messaggio
    Per me è giusto questo

    Se ti da errori devi aver sbagliato qualcos'altro....
    buongiorno a tutti , l'errore che facevo era mettere all'inizio <shape con una > tolta quella l'errore che mi appariva è sparito , ho provato dinuovo l'applicazione con l'sdk ma continua a dare lo stesso problema all'avvio ...

  10. #8
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da al3x88 Visualizza il messaggio
    buongiorno a tutti , l'errore che facevo era mettere all'inizio <shape con una > tolta quella l'errore che mi appariva è sparito , ho provato dinuovo l'applicazione con l'sdk ma continua a dare lo stesso problema all'avvio ...
    Bene, allora è il momento di recuperare il po' di log!

    Nella directory tools del tuo sdk, dopo aver avviato l'emulatore,
    prova a dare un adb logcat da shell e poi cerca nuovamente di avviare la tua app.
    A questo punto sulla shell dovrebbe comparire una bella sbrodolata di eccezioni Java da cui partire per analizzare il problema presente.

  11. #9
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    70

    Ringraziamenti
    12
    Ringraziato 2 volte in 2 Posts
    Predefinito

    quando dicevi una sbrodolata è che sbrodolata di eccezioni , da dos sono andato nella cartella c:/android/android-sdk/tools e ho scritto adb logcat è mi è venuto questo fuori (ps ovviamente con emulatore sdk attivo )

    ecco il link x logcat completo Free Text Host - The Anonymous Text Hosting Service
    per comodità posto direttamente qui quello che è venuto dopo aver cliccato sull'icona dell'applicazione
    D/dalvikvm( 121): GC_EXTERNAL_ALLOC freed 331 objects / 18800 bytes in 76ms
    I/ActivityManager( 61): Starting activity: Intent { act=android.intent.action.
    MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=it.apogeo.android
    .cap03.cliptest/.ClipTestActivity }
    I/ActivityManager( 61): Start proc it.apogeo.android.cap03.cliptest for activi
    ty it.apogeo.android.cap03.cliptest/.ClipTestActivity: pid=243 uid=10033 gids={}

    I/ARMAssembler( 61): generated scanline__00000077:03545404_00000004_00000000 [
    47 ipp] (67 ins) at [0x30f4d8:0x30f5e4] in 632156 ns
    D/AndroidRuntime( 243): Shutting down VM
    W/dalvikvm( 243): threadid=1: thread exiting with uncaught exception (group=0x4
    001d800)
    E/AndroidRuntime( 243): FATAL EXCEPTION: main
    E/AndroidRuntime( 243): java.lang.RuntimeException: Unable to start activity Co
    mponentInfo{it.apogeo.android.cap03.cliptest/it.apogeo.android.cap03.cliptest.Cl
    ipTestActivity}: java.lang.NullPointerException
    E/AndroidRuntime( 243): at android.app.ActivityThread.performLaunchActiv
    ity(ActivityThread.java:2663)
    E/AndroidRuntime( 243): at android.app.ActivityThread.handleLaunchActivi
    ty(ActivityThread.java:2679)
    E/AndroidRuntime( 243): at android.app.ActivityThread.access$2300(Activi
    tyThread.java:125)
    E/AndroidRuntime( 243): at android.app.ActivityThread$H.handleMessage(Ac
    tivityThread.java:2033)
    E/AndroidRuntime( 243): at android.os.Handler.dispatchMessage(Handler.ja
    va:99)
    E/AndroidRuntime( 243): at android.os.Looper.loop(Looper.java:123)
    E/AndroidRuntime( 243): at android.app.ActivityThread.main(ActivityThrea
    d.java:4627)
    E/AndroidRuntime( 243): at java.lang.reflect.Method.invokeNative(Native
    Method)
    E/AndroidRuntime( 243): at java.lang.reflect.Method.invoke(Method.java:5
    21)
    E/AndroidRuntime( 243): at com.android.internal.os.ZygoteInit$MethodAndA
    rgsCaller.run(ZygoteInit.java:868)
    E/AndroidRuntime( 243): at com.android.internal.os.ZygoteInit.main(Zygot
    eInit.java:626)
    E/AndroidRuntime( 243): at dalvik.system.NativeStart.main(Native Method)

    E/AndroidRuntime( 243): Caused by: java.lang.NullPointerException
    E/AndroidRuntime( 243): at it.apogeo.android.cap03.cliptest.ClipTestActi
    vity.onCreate(ClipTestActivity.java:16)
    E/AndroidRuntime( 243): at android.app.Instrumentation.callActivityOnCre
    ate(Instrumentation.java:1047)
    E/AndroidRuntime( 243): at android.app.ActivityThread.performLaunchActiv
    ity(ActivityThread.java:2627)
    E/AndroidRuntime( 243): ... 11 more
    W/ActivityManager( 61): Force finishing activity it.apogeo.android.cap03.cli
    ptest/.ClipTestActivity
    I/ARMAssembler( 61): generated scanline__00000077:03515104_00000000_00000000 [
    33 ipp] (47 ins) at [0x317970:0x317a2c] in 576390 ns
    W/ActivityManager( 61): Activity pause timeout for HistoryRecord{4401e010 it.a
    pogeo.android.cap03.cliptest/.ClipTestActivity}
    D/dalvikvm( 61): GC_FOR_MALLOC freed 8363 objects / 419104 bytes in 193ms
    W/ActivityManager( 61): Activity destroy timeout for HistoryRecord{4401e010 it
    .apogeo.android.cap03.cliptest/.ClipTestActivity}
    I/Process ( 243): Sending signal. PID: 243 SIG: 9
    I/ActivityManager( 61): Process it.apogeo.android.cap03.cliptest (pid 243) has
    died.
    W/InputManagerService( 61): Window already focused, ignoring focus gain of: co
    m.android.internal.view.IInputMethodClient$Stub$Pr oxy@43f83910
    D/SntpClient( 61): request time failed: java.net.SocketException: Address fami
    ly not supported by protocol
    ora devo andare .... ciao grazie mille ancora per l'aiuto Cymon , BitBerzerkir .

  12. #10
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    AH, NullPointer! Quanti giovani programmatori hai ucciso! Di quanti chiederai ancora il sangue?

    Eh, a vederlo così può essere tutto e il contrario di tutto. Considerando le problematiche in cui mi sono imbattuto in questi primi periodi di sperimentazioni androidi posso pensare che la id che tu hai assegnato all'imageview in main.xml non sia esattamente come quella che poi vai a cercare con la find.
    Oppure la get Drawable non funziona come dovrebbe... dovrei fare un po' di esperimenti, vedo quando ho tempo. Intanto potresti cominciare a infilare qualche riga di log e vedere cosa delle due ritorna null.
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

Pagina 1 di 4 123 ... ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy