Autore Topic: [Immagini]Ottimizzare le immagini prima di settarle come sfondo.  (Letto 459 volte)

Offline Yamitsuki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5 / Nexus 7 (2012)
  • Sistema operativo:
    Windows
0
Salve a tutti,
sono nuovo nel mondo della programmazione su Android e vorrei chiedervi qual'è il modo più efficace per ridurre i tempi di caricamenti delle immagini. Entrando più nel dettaglio ho il mio programma che è un "Service" che gira in background, quando riceve un evento cambia lo sfondo del telefonino. I problemi che ho ora è che con alcune immagini ci mette poco e altre molto.

Qui il codice java del "service":
Codice (Java): [Seleziona]
public class BackService extends Service{

    ArrayList<File> list;
    public int i=0;



    public IBinder onBind(Intent intent) {
        return null;
    }


    public int onStartCommand(Intent intent,int flags,int startId){
        File path = new File(Environment.getExternalStorageDirectory().getPath(),"/cartella");
        list = imageReader(path);

        //Evento.Listener.start


        return START_STICKY;
    }
    public void onDestroy(){
        //Evento.Listener.stop
        Toast.makeText(this,"Servizio Terminato",Toast.LENGTH_SHORT).show();
    }


    ArrayList<File> imageReader(File root) {
        ArrayList<File> a = new ArrayList<>();

        File[] files = root.listFiles();
        for (File file : files) {

         if (file.getName().endsWith(".jpg") || file.getName().endsWith(".jpeg") || file.getName().endsWith(".png")) a.add(file);

        }

        return a;
    }

    @Override
    public void eventosentito() throws IOException{
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        if (pm.isScreenOn()) {
            String path = list.get(i).getPath();
            Bitmap image;

            image = MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.fromFile(new File(path)));

            WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
            myWallpaperManager.forgetLoadedWallpaper();

            myWallpaperManager.setBitmap(image);


            if (i < list.size() - 1) i++; else i = 0;

        }
    }


}

Ovviamente se avete consigli anche per altro son ben accetti!

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:[Immagini]Ottimizzare le immagini prima di settarle come sfondo.
« Risposta #1 il: 16 Aprile 2015, 08:04:37 CEST »
0
Sul tempo necessario devi mettere in conto di non avere controllo: dipende dalle dimensioni dell'immagine, dallo stato della connessione dati nel momento specifico, dal fatto che android potrebbe essere impegnato in altro, dal fatto che il server potrebbe non rispondere rapidamente.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Yamitsuki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5 / Nexus 7 (2012)
  • Sistema operativo:
    Windows
Re:[Immagini]Ottimizzare le immagini prima di settarle come sfondo.
« Risposta #2 il: 16 Aprile 2015, 11:28:09 CEST »
0
Come potrei ridimensionsionare l'immagine in base allo schermo del dispositivo senza perdere troppa qualità?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1224
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:[Immagini]Ottimizzare le immagini prima di settarle come sfondo.
« Risposta #3 il: 16 Aprile 2015, 12:59:57 CEST »
0
la qualita massima la ottieni cosi: se hai la foto 7024x5034 e lo schermo del cell è 640x480, la massima risoluzione che meglio viebe rappresentata è proprio quella, ovvero 640x 480.

per non è detto che 7024/5034 = 640x480.
Se devi mantenere le propor<ioni allora avrai una barra vuota o in alto a ai lati dell' immagine. Se togli tale barra l'immagine è scalata in maniera sbagliata.

Offline Yamitsuki

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5 / Nexus 7 (2012)
  • Sistema operativo:
    Windows
Re:[Immagini]Ottimizzare le immagini prima di settarle come sfondo.
« Risposta #4 il: 06 Maggio 2015, 01:50:41 CEST »
0
Usandola come background non è il massimo vedere barre nere. Più che altro vorrei capire se la procedura che sfrutto per impostare l'immagine come background sia una buona soluzione o no.