2013-03-12 20 views
6

Ho scritto questo codice che carica un'immagine al widget di ImageView:Crea ImageViews dinamicamente all'interno di un ciclo

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gallery); 
    i = (ImageView)findViewById(R.id.imageView1); 

    new get_image("https://www.google.com/images/srpr/logo4w.png") { 
     ImageView imageView1 = new ImageView(GalleryActivity.this); 

     ProgressDialog dialog = ProgressDialog.show(GalleryActivity.this, "", "Loading. Please wait...", true); 

     protected void onPreExecute(){ 
      super.onPreExecute(); 
     } 

     protected void onPostExecute(Boolean result) { 
      i.setImageBitmap(bitmap); 
     dialog.dismiss(); 
     } 
    }.execute(); 


} 

bu ora, voglio caricare diverse immagini. per questo ho bisogno di creare visualizzazioni di immagini in modo dinamico, ma non so come ...

voglio eseguire il mio codice all'interno di un ciclo for:

for(int i;i<range;i++){ 
    //LOAD SEVERAL IMAGES. READ URL FROM AN ARRAY 
} 

il mio problema principale è la creazione di diversi ImageViews all'interno di un ciclo dinamico

+0

C'è un motivo particolare perché non è possibile utilizzare i controlli di elenco incorporati di Android? – Premsuraj

+0

@Premsuraj: no, posso usare i widget incorporati per questo scopo? Come? – Fcoder

+0

Perché hai bisogno di più visualizzazioni di immagini? Qual è lo scopo? hai bisogno di visualizzare le immagini in un elenco? –

risposta

14

è possibile modificare il layout, risorsa immagine e non di immagini (può essere dinamica e) secondo il vostro requisito ...

LinearLayout layout = (LinearLayout)findViewById(R.id.imageLayout); 
for(int i=0;i<10;i++) 
{ 
    ImageView image = new ImageView(this); 
    image.setLayoutParams(new android.view.ViewGroup.LayoutParams(80,60)); 
    image.setMaxHeight(20); 
    image.setMaxWidth(20); 

    // Adds the view to the layout 
    layout.addView(image); 
} 
+0

Ciao Hussain. Perché imposti setMaxHeight e setMaxWidth? –

+0

@ Mitulátbáti: http://developer.android.com/reference/android/widget/ImageView.html#setMaxHeight (int) –

+0

possiamo impostare un margine per tale visualizzazione? –

1

È possibile utilizzare questo codice per creare ImageViews

ImageView image = new ImageView(this); 
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
image.setLayoutParams(vp); 
image.setMaxHeight(50); 
image.setMaxWidth(50); 
// other image settings 
image.setImageDrawable(drawable); 
theLayout.addView(image); 

dove schedaLayout è il layout che si desidera aggiungere le vostre opinioni immagine.

Per ulteriori personalizzazioni consultare la pagina dev, in cui sono elencate tutte le opzioni possibili.

0

Prova questo

rootLayout = (LinearLayout) view1.findViewById(R.id.linearLayout1); 

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.CENTER_VERTICAL; 

    params.setMargins(0, 0, 60, 0); 


    for(int x=0;x<2;x++) { 
     ImageView image = new ImageView(getActivity()); 

     image.setBackgroundResource(R.drawable.ic_swimming); 
     rootLayout.addView(image); 
    } 
Problemi correlati