Autore Topic: imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out  (Letto 3048 volte)

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Salve a tutti,
sono nuovo di android dev e soprattutto sono nuovo con la programmazione java (programmo in molti linguaggi ma java non ancora :>)
Lo riesco a capire, lo "intendo", ma non riesco a immedesimarmici come con gli altri, non uso linguaggi a oggetti apparte le classi di php.
Sto facendo un'app che mi visualizzi semplicemente il sito mobile ma un pò più trasgressiva delle solite, insomma.. con un paio di modifiche per renderla migliore (anche solo visivamente..).
Ho tre domande da porvi e con ricerche interne non ho trovato granchè che possa aiutarmi a pieno!
Io ho questo codice che è il mio MainActivity.java (l'unico file .java dentro src):
Codice (Java): [Seleziona]
package com.lulz.project;
 import android.app.Activity;
 import android.os.Bundle;
 import android.view.View;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;

 public class MainActivity extends Activity {

 WebView mainWebView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    WebView mainWebView = (WebView) findViewById(R.id.mainWebView);

    WebSettings webSettings = mainWebView.getSettings();

    webSettings.setJavaScriptEnabled(true);

    mainWebView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(WebView view, String url) {
            //hide loading image
            findViewById(R.id.imageView1).setVisibility(View.GONE);
            //show webview
            findViewById(R.id.mainWebView).setVisibility(View.VISIBLE);
        }


    });    

    mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    mainWebView.loadUrl("http://mymobilewebsite");

}

private class MyCustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

/** nel codice l'ho tolto perchè mi faceva addirittura crashare l'app...
 @Override
public void onBackPressed()
 {
     if(mainWebView.canGoBack())
         mainWebView.goBack();
     else
         super.onBackPressed();
 }
 fine commento .. */


}
  • Ho inserito come potete vedere dal codice java un imageview che viene usata come "loading" fino a che la webview non è caricata e dopo scompare l'immagine e compare il sito web mobile, il problema sta nel fatto che vorrei innanzitutto inserire una gif (cosa che ho fatto ma non va l'animazione) e poi vorrei che fosse tutto schermo, ho provato nel file xml a cambiare  layout_width e layout_height, gli ho messo fill_parent e wrap_content ma con entrambi nel mio galaxy s2 non viene a tutto schermo!
  • Presente i tre tastini di ogni samsung? Impstazioni, menu, indietro? Ecco vorrei fare in modo che quando si preme il tasto indietro vada indietro nelle pagine come se fosse un browser normale, e se premi indietro ancora una volta come in ogni applicazione esce (con messaggio alert che ti chiede se vuoi uscire o no..).
    Come potete vedere sopra ci ho provato, ma niente da fare, anzi mi crasha l'app e onBackPressed l'ho proprio tolto
  • Quando la webview ha finito di caricare, l'immagine che ho inserito come "loading" scompare e appare la webview, ma fa visivamente schifo, vorrei un effetto fadein fadeout e anche li ho avuto infiniti problemi, ho guardato guide in giro come su stackoverflow ho provato ma niente da fare, ho provato a fare i due file xml e a richiamarli in questo file java, ma non faceva niente..
  • Quest'ultima è più che altro una domanda di carattere generale e ci posso guardare da solo, il problmema sta nel fatto che non so cosa cercare su google, perchè voglio fare un menu quando clicchi il tasto impostazioni del cellulare con due voci, esci dall'app e guida all'uso dell'app, solo che non ho idea di cosa cercare, ho provato con "settings button samsung..blabla" ma niente!
Scusate per questa sfilza di domande ma sono quelle che mi sono "avanzate" a cui non ho saputo dare risposta e visto che vorrei cominciare a programmare in android seriamente, se comincio con questa semplice app, chissà che magari un domani non sarò quello che inventerà un giochino più normale di ruzzle .-.!
Grazie della pazienza/attenzione :>


PS se mi dovevo presentare sappiate che non ho assolutamente visto la sezione :D comunque piacere a tutti!
« Ultima modifica: 07 Febbraio 2013, 10:29:17 CET da hutzee »

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:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #1 il: 07 Febbraio 2013, 11:48:53 CET »
0
GIF (o meglio PNG) animate non sono supportate dalle ImageView, ma potrebbe essere più semplice caricare la GIF animata locale nella webview (che quindi gestisce l'immagine animata) e immediatamente dopo fare il load della pagina, che prenderà un certo tempo e rimpiazzerà la precedente.

Sul backpressed non so darti risposte certe, ma per i crash devi assolutamente cominciare a prendere confidenza con il LogCat, lo strumento principale per il debug. Ogni qual volta avviene un crash, nel LogCat trovi anche lo stacktrace degli errori che lo hanno generato.

Per il menu basta che cerchi esempi di OptionsMenu.
Menus | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #2 il: 07 Febbraio 2013, 12:50:17 CET »
0
Per il LogCat infatti lascio stare nel senso che ci penso io ai crash e ci guardo appena ho due minuti, per il backpressed, ce ne sono a migliaia solo che non funzionano, adesso mi organizzerò....
per un fadein fadeout? ed eventualmente l'immagine a tutto schermo?

Grazie ancora!

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #3 il: 07 Febbraio 2013, 15:04:48 CET »
0
Citazione
per il backpressed, ce ne sono a migliaia solo che non funzionano,
Direi che la soluzione è offerta (as usual!) dalla documentazione ufficiale:

http://developer.android.com/guide/webapps/webview.html#HandlingNavigation

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #4 il: 11 Febbraio 2013, 19:05:39 CET »
0
ok ho risolto quasi tutto, ora però creando il menu con 4 item (esci app, condividi che non ho idea se esista davvero la funzione share(), apri la pagina ciao.it, apri la pagina google.it) ecco che problema mi arriva:
-compile:
[javac] Compiling 2 source files to /........./.../bin/classes
[javac] /......./..../src/com/tryed/project/MainActivity.java:41: cannot find symbol
[javac] symbol : method loadUrl(java.lang.String)
[javac] location: class com.tryed.project.MainActivity
[javac] loadUrl("http://ciao.it/");
[javac] ^
[javac] /......./..../src/com/tryed/project/MainActivity.java:45: cannot find symbol
[javac] symbol : method loadUrl(java.lang.String)
[javac] location: class com.tryed.project.MainActivity
[javac] loadUrl("http://google.it/");
[javac] ^
[javac] /......./..../src/com/tryed/project/MainActivity.java:49: cannot find symbol
[javac] symbol : method share()
[javac] location: class com.tryed.project.MainActivity
[javac] share();
[javac] ^
[javac] 3 errors


----- il codice è questo:

Codice (Java): [Seleziona]
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_exit:
finish();
return true;
case R.id.menu_about:
loadUrl("http://ciao.it/");
return true;
case R.id.menu_help:
loadUrl("http://google.it/");
return true;
case R.id.menu_share:
share();
default:
return super.onOptionsItemSelected(item);
}
}

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
R: imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #5 il: 11 Febbraio 2013, 19:11:09 CET »
0
Posta il codice di tutta la classe, perché o ti mancano dei metodi o sono fuori dalla visibilità del codice che ci hai condiviso.

Ps: ma usare un ide come eclipse invece di lanciare il compilatore a mano è contrario a qualche dogma religioso che non conosco?

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #6 il: 11 Febbraio 2013, 19:16:42 CET »
0
vi posto tutto e facciamo prima tanto non abbiamo problemi di spazio.

(Per eclipse, l'ho usato all'università per c, non mi piace e su backtrack mi da infiniti errori installare le cosette di android)
MainActivity.java
Codice (Java): [Seleziona]
package com.tryed.project;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.widget.ShareActionProvider;

public class MainActivity extends Activity {

       
        WebView WorfutWeb;
        ProgressBar progressBar;
       
            @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    return true;
}

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_exit:
            finish();
         return true;
        case R.id.menu_about:
        loadUrl("http://ciao.it");
// inside the menu button you don't need to call Super.loadUrl, LoadUrl its enough
            return true;
        case R.id.menu_help:
        loadUrl("http://google.it");
// inside the menu button you don't need to call Super.loadUrl, LoadUrl its enough
            return true;
        case R.id.menu_share:
            share();
        default:
            return super.onOptionsItemSelected(item);
    }
}
       

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
     
        WorfutWeb = (WebView) findViewById(R.id.mainWebView);
       
        WorfutWeb.getSettings().setSupportZoom(false);
        WorfutWeb.getSettings().setBuiltInZoomControls(false);
        WorfutWeb.setBackgroundColor(Color.BLACK);
       
        WorfutWeb.setWebViewClient(new myWebClient());
        WorfutWeb.getSettings().setJavaScriptEnabled(true);
        Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
                //Now Set your animation
        WorfutWeb.loadUrl("http://www.mywebsite.lulz");
                WorfutWeb.startAnimation(fadeInAnimation);
    }
   
    public void onResume() {  
       super.onResume();  
       if (WorfutWeb != null) {  
        WorfutWeb.resumeTimers();  
       }  
     }  
 
    public void onPause() {  
       super.onPause();  
       if (WorfutWeb != null) {  
        WorfutWeb.pauseTimers();  
       }  
     }  
   
   
    public class myWebClient extends WebViewClient
    {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
        }
       
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                view.loadUrl(url);
                return true;
               
        }
        @Override
        public void onPageFinished(WebView view, String url) {
                // TODO Auto-generated method stub
                super.onPageFinished(view, url);
        }
    }
   
     // To handle "Back" kewy press event for WebView to go back to previous screen.
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)
        {
                if ((keyCode == KeyEvent.KEYCODE_BACK) && WorfutWeb.canGoBack()) {
                        WorfutWeb.goBack();
                        return true;
                }
                return super.onKeyDown(keyCode, event);
        }
}

menu/menu.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/menu_help" android:title="@string/help"
                android:icon="@drawable/ic_help" />
        <item android:id="@+id/menu_about" android:title="@string/about"
                android:icon="@drawable/ic_info" />
        <item android:id="@+id/menu_exit" android:title="@string/exit"
                android:icon="@drawable/ic_exit" />
        <item android:id="@+id/menu_share" android:title="@string/share"
                android:icon="@drawable/ic_share" />
</menu>
per i titoli o gli id nel menu.xml lasciate stare, ho cambiato i link veri con link adattati per non creare spam su questo forum.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #7 il: 12 Febbraio 2013, 10:02:35 CET »
0
In tutta la tua MainActivity non sono dichiarati ne il metodo 'loadUrl' ne il metodo 'share'. Credo che stai facendo riferimento ad un esmepio o ad un tutorial e devono esserti sfuggiti nel cut & paste :)

PS: anche a me non è che faccia impazzire eclipse, ma è questione di mera sopravvivenza.. sviste come questa te le avrebbe segnalate immediatamente.

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #8 il: 12 Febbraio 2013, 10:18:56 CET »
0
Grazie della risposta, comunque avevo intuito che erano funzioni non dichiarate, ciò che non mi spiego però è perchè loadurl non funziona? io la uso per la webview (funziona assicuro xD) > WorfutWeb.loadUrl("http://www.mywebsite.lulz");
Eh consigli per completare? Nel "tutorial" che era semplicemente stackoverflow non c'era nulla che definisse share o loadurl, io personalmente ho trovato anche qui qualcosa sul tasto share, ma è troppo avanzato volevo qualcosa di più semplice...
Grazie ancora della pazienza!

p.s. Eclipse ci sto lavorando :D ahaha work in progress! ma è che fa proprio su schifo su backtrack!!!!

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #9 il: 12 Febbraio 2013, 10:29:03 CET »
0
E ci credo che sulla WebView funziona, lei li ha quei metodi!  :D
Quello che devi fare è nell'onCreate dell'activity recuperare la webview (che a questo punto presumo sia nel tuo layout) e richiamare i suoi metodi.

Qualcosa del tipo:

Codice (Java): [Seleziona]
public class MainActivity extends Activity {

  WebView WorfutWeb;

  @Override

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mio_layout);

    WorfutWeb = (WebView)findViewById(R.id.mia_webview);
    //...
  }

  //...

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case R.id.menu_exit:
        WorfutWeb.finish();
        return true;
      case R.id.menu_about:
        WorfutWeb.loadUrl("http://ciao.it");
        return true;
      case R.id.menu_help:
        WorfutWeb.loadUrl("http://google.it");
        return true;
      case R.id.menu_share:
        // share(); questo onestamente non so dove si aspetti di trovarlo, non esiste sulle webview...
      default:
        return super.onOptionsItemSelected(item);
    }
  }

  //...
}
« Ultima modifica: 12 Febbraio 2013, 10:30:46 CET da Sakazaki »

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #10 il: 12 Febbraio 2013, 11:03:54 CET »
0
LogCat non mi funziona quindi momentaneamente sono tornato al debug del cazzo..
Comunque ho provato a fare come dici tu e a eliminare momentaneamente lo share (l'ho sostituito con un altro loadurl) e ora mi da questo:
Codice: [Seleziona]
-compile:
    [javac] Compiling 2 source files to /..../bin/classes
    [javac] /...../src/com/tryed/project/MainActivity.java:57: ';' expected
    [javac]         public boolean onOptionsItemSelected(MenuItem item) {
    [javac]                                             ^
    [javac] /.../src/com/tryed/project/MainActivity.java:57: ';' expected
    [javac]         public boolean onOptionsItemSelected(MenuItem item) {
    [javac]                                                           ^
    [javac] 2 errors
Ho fatto una ricerca veloce su google e mi dice che è proprio sul punto e virgola l'errore il problema è che il punto e virgola non c'è :D

Il codice è identico a quello di prima ho solo spostato "onOptionsItemSelected...." dentro onCreate Bundle come mi hai fatto vedere tu nell'esempio e ho aggiunto worfutweb.loadurl... insomma è sintatticamente simile a quello del tuo esempio, che cos'altro sbaglio?

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #11 il: 12 Febbraio 2013, 11:09:20 CET »
0
Credo tu abbia spostato il metodo onOptionsItemSelected dentro un altro metodo (ma sto andando alla cieca, non sapendo come hai modificato).
Riverifica il codice e per l'amor di Dio fai pace con eclipse o con un ide qualsiasi! XD

Offline Hutzee

  • Nuovo arrivato
  • *
  • Post: 17
  • cuz we luv teh lulz <<-<
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s2
  • Sistema operativo:
    backtrack 5r3 (ubuntu 10.04)
Re:imageview a tutto schermo, tasto indietro del cell non va indietro, fadein/out
« Risposta #12 il: 12 Febbraio 2013, 11:48:45 CET »
0
hoooo risoltooo :D
ora manca solo il tasto share, qualche bel link italiano? che non sia quello che c'è qua su anddev che è nuovissimo e ai miei occhi difficilissimo ? :D