Array di immagini

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Buonasera a tutti e grazie anticipatamente a chi riuscirà ad aiutarmi.
Premetto che sto sviluppando un'app con Android Studio aggiornato all'ultima versione.
Comunque questo è il mio problema.

Devo creare un array di 10 immagini con inizialmente tutte le 10 posizioni occupate dalla stessa immagine ovvero ledoff.png (tale immagine è inserita nella cartella drawable del progetto).

Poi in base a un valore estratto da una formula, che può risultare essere un numero da 0 a 10, devo sostituire nell'array l'immagine con ledon.png (anch'essa inserita nella cartella drawable del progetto).

Per esempio se il valore che risulta dalla formula è 7, devo sostituire nell'array nelle prime 7 posizioni l'immagine ledoff.png con ledon.png e lasciare le restanti immagini presenti nell'array (quindi in questo caso da 8 a 10) intoccate.

Dopo di che devo far visualizzare sulla home della app questo array di immagini che risulterà una sorta di progress bar.

E' fattibile come cosa? Se sì chi potrebbe gentilmente darmi una mano??

Grazie grazie grazie.
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
28
Ciao, presumo sia fattibile ma ho l'impressione che ti stia complicando inutilmente il lavoro. A meno che non mi stia sfuggendo qualcosa, se l'intento è realizzare una sorta di progress bar, non vedo la necessità di usare un array. Penso sia sufficiente il valore della formula che in qualche modo ti servirà per mostrare l'una o l'altra immagine rispettivamente alla posizione in cui si trova nella sequenza che mostrerai.

Chiarisci perché hai pensato di risolvere con un array e con quale linguaggio devi sviluppare questa cosa. Non mi è chiaro se il risultato deve essere visualizzato attraverso una pagina html o se il tutto rimane nell'ambito java/kotlin.
 

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Ciao, presumo sia fattibile ma ho l'impressione che ti stia complicando inutilmente il lavoro. A meno che non mi stia sfuggendo qualcosa, se l'intento è realizzare una sorta di progress bar, non vedo la necessità di usare un array. Penso sia sufficiente il valore della formula che in qualche modo ti servirà per mostrare l'una o l'altra immagine rispettivamente alla posizione in cui si trova nella sequenza che mostrerai.

Chiarisci perché hai pensato di risolvere con un array e con quale linguaggio devi sviluppare questa cosa. Non mi è chiaro se il risultato deve essere visualizzato attraverso una pagina html o se il tutto rimane nell'ambito java/kotlin.

Praticamente l'effetto sara' questo.. ci saranno più barre come queste sulla app che funzioneranno come descritto in precedenza sul mio post. Non c'e' nulla di html o web. La app gira localmente e senza internet. La sto sviluppando con Android Studio in Java.
1588333604922.png
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
28
Ciao, se ci sono più barre ci sarà una classe che andrai ad istanziare, giusto? Hai già sviluppato questa parte?

Se la grafica delle immagini è quella, penso non ti serva nemmeno usare dei file immagine, ma potresti disegnare dei semplici rettangoli usando un canvas.

A quel punto puoi creare un metodo della classe il quale, passandogli il valore specificato, si occuperà di ridisegnare/colorare i rettangoli attraverso un ciclo.

Questo a grandi linee.
 

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Non ho mai programmato una app android e questa è la prima per me.. Io al massimo usavo c++ anni fa a scuola.. Riguardo cmq alla classe non so cosa sia in realtà.. Una funzione o procedura? Per quanto riguarda i rettangoli preferisco usare immagini in modo che se poi voglio migliorare la grafica poi un giorno, mi basterà sostituire il png nella cartella drawable del progetto.. Avevo anche provato a usare dei rettangoli fatti con lo shape ma non mi piaceva come venivano. Grazie
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
28
Fammi capire, hai iniziato a sviluppare già qualcosa o hai solo l'idea di base e sei fermo a quella?

Ok c++ ma hai mai sviluppato qualcosa in java?

Riguardo cmq alla classe non so cosa sia in realtà..
Abbi pazienza ma tu pensa che la prima versione di c++ era chiamata proprio "c con classi". Sono nozioni di fondamentale importanza riguardo la programmazione object oriented.

Anche java rientra in questa categoria. Per ciò che hai intenzione di fare penso sia necessario conoscere tali nozioni, a prescindere dallo sviluppo di app android.

A questo punto, usare o non usare un array mi pare un problema minimo o quantomeno secondario.

Se hai già iniziato a fare qualcosa, e hai dei dubbi su come proseguire, prova a postare ciò a cui sei arrivato, magari ti si può consigliare qualcosa. Diversamente viene difficile poterti aiutare.
 

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Questo il codice da me scritto riguardante questo pezzo di programma. Ovviamente ho messo solo una parte perche' questo e' ripetuto per piu' "progressbar". Cmq riguardo alla classe mi ero confuso io prima... Mi ero appena svegliato e non connettevo XD

Codice:
public class Main extends AppCompatActivity {

    boolean a, b, c, d;
    float misura;
    int a1, b1, c1, d1;
    int[] pb1={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb2={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb3={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb4={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    

    misura = //valore da formula
    a1 = 0;
    b1 = 0;
    c1 = 0;
    d1 = 0;
    a = false;
    b = false;
    c = false;
    d = false;
    if (misura <= 90){
        b1 = Math.round((misura/90) * 10);
        a1 = 10 - b1;
        for (int i=0; i<b1; i++) {
            pb2[i]=R.drawable.ledon;
        }
        for (int i=0; i<a1; i++) {
            pb1[i]= R.drawable.ledon;
        }
        a = true;
    }
    [...]
     if (a=true) {
        //disegna pb1
        for (int i=0; i<a1; i++) {
            System.out.print(pb1[i]);
        }
           //disegna pb2
        for (int i=0; i<b2; i++) {
            System.out.print(pb2[i]);
        }
    }
    [...]
 

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Questo il codice da me scritto riguardante questo pezzo di programma. Ovviamente ho messo solo una parte perche' questo e' ripetuto per piu' "progressbar". Cmq riguardo alla classe mi ero confuso io prima... Mi ero appena svegliato e non connettevo XD

Codice:
public class Main extends AppCompatActivity {

    boolean a, b, c, d;
    float misura;
    int a1, b1, c1, d1;
    int[] pb1={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb2={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb3={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    int[] pb4={R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff, R.drawable.ledoff};
    

    misura = //valore da formula
    a1 = 0;
    b1 = 0;
    c1 = 0;
    d1 = 0;
    a = false;
    b = false;
    c = false;
    d = false;
    if (misura <= 90){
        b1 = Math.round((misura/90) * 10);
        a1 = 10 - b1;
        for (int i=0; i<b1; i++) {
            pb2[i]=R.drawable.ledon;
        }
        for (int i=0; i<a1; i++) {
            pb1[i]= R.drawable.ledon;
        }
        a = true;
    }
    [...]
     if (a=true) {
        //disegna pb1
        for (int i=0; i<a1; i++) {
            System.out.print(pb1[i]);
        }
           //disegna pb2
        for (int i=0; i<b2; i++) {
            System.out.print(pb2[i]);
        }
    }
    [...]
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
28
Ovviamente ho messo solo una parte perche' questo e' ripetuto per piu' "progressbar"
Ciao, è proprio questo il motivo per cui pensavo avessi creato una classe. L'uso di codice ripetuto in quel modo è sintomo di una cattiva programmazione.

A parte questo, continuo a non vedere la necessità di inserire quei valori dentro degli array. Dal momento che il dato utile è semplicemente il valore della formula (il quale determina lo stato della progress bar) e che devi comunque eseguire un ciclo per variare ogni singola immagine fino a quel valore, non vedo quindi l'utilità di passare per un array.

Penso sia sufficiente un unico ciclo, per le 10 posizioni, dove vai a disegnare direttamente l'opportuna immagine di ciascuna posizione, secondo il valore della formula.
 

alexius85

Nuovo Utente
30 Apr 2020
7
0
1
Ok esaresti così gentile da farmi un esempio? poi volevo capire come fare per far sì che quelle barre vengano messe sempre nella stessa posizione, a livello grafico proprio..
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
28
Ok esaresti così gentile da farmi un esempio?
Chiarisco che non sono troppo esperto ma provo ad elaborare qualcosa se riesco, non ti garantisco comunque nulla.

poi volevo capire come fare per far sì che quelle barre vengano messe sempre nella stessa posizione, a livello grafico proprio..
Dovresti poter definire il layout attraverso i file xml, quello principale "activity_main.xml" ed eventuali Fragments.
Magari vedi qualche guida, non ne ho da consigliarti ma prova a fare qualche guida o magari attendi eventuali risposte da altri utenti più esperti.
 
  • Like
Reactions: alexius85
Discussioni simili
Autore Titolo Forum Risposte Data
M Ajax array con immagini Ajax 1
V Creare array di immagini dato un codice PHP 1
M Insert di immagini e array in un database PHP 11
D array di immagini Classic ASP 12
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
M Passaggio variabili array php su un tasto jq PHP 3
M Somma inversa di Array C/C++ 2
MarcoGrazia Iterazione array PHP 5
N Passare array da php a javascript PHP 5
G Ordinare un array multidimensionale PHP 4
H Errore su array associativo PHP 1
K Array senza ripetizioni Presentati al Forum 4
A Gestione array multidimensionale PHP 6
otto9due Più chiavi in array con array_key_exists() PHP 0
M Array associativi php su 2 campi mysql PHP 10
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L Sessione e array per utenti PHP 0
R Importazione csv su mysql tramite array PHP 2
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
P Ciclare tra array di oggetti PHP 1
R Raggruppare valori array PHP 5
S Come conoscere la posizione di numeri in un array escludendo i doppioni PHP 4
D Popolare array PHP 8
R Includere elementi array fra apici PHP 1
P Array da foreach PHP 2
N Variabile di sessione è un array PHP7 PHP 3
R Scorporare array e recuperare record tabella PHP 10
A Contare gli elementi di un array PHP 13
A Importare array in mysql PHP 1
D Chiave unica in estrazione dati da array php PHP 0
D Spazio vuoto in un elemento di un array php PHP 2
S Come filtrare valori di un array PHP 4
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
max1974 PHP, Array Multidimensionale e Grafici PHP 22
S [PHP] Confrontare due array con valori quasi uguali PHP 2
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R [PHP] Visualizzazione dati Array PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
M Importare - Manipolare Json Array Sviluppo app per Android 2
M [PHP] Problemi su inserimento array nel db PHP 7
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
G [ASP] Ciclare i valori di 2 array Classic ASP 2
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
max1974 [PHP] Raggruppare array PHP 4
A [PHP] Caricamento database in array PHP 11
G sql select con array in php PHP 1
L [Java] Aggiungere elementi ad array JSON Java 0

Discussioni simili