2016-02-02 3 views
1

Я использую следующий код для отображения изображений из папки с возможностью перемещения. Но теперь я хочу динамически отображать картинки. Каждый раз, когда новое изображение добавляется в выпадающую папку, я не хочу снова входить в код и добавлять его в массив, он должен автоматически увеличиваться и отображаться. Любая идея, как мне это сделать. Просто начал работать на Android.Динамически отображает изображения

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.Menu; 
import android.widget.ImageView; 
import android.app.Service; 
import android.os.Handler; 


public class MainActivity extends AppCompatActivity { 

private static ImageView imgView; 

    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    imgView = (ImageView) findViewById(R.id.imageView); 

                       final int[] images=images{R.drawable.ic_launcher, 

    R.drawable.ic_launcher1,R.drawable.ic_launcher2,etc..}; 


    final Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 
     int i=0; 
     public void run() { 
      imgView.setImageResource(images[i]); 
      i++; 
      if(i>images.length-1) 
      { 
       i=0; 
      } 
      handler.postDelayed(this,5000); //for interval... 
     } 

    }; 
    handler.postDelayed(runnable, 5000); //for initial delay.. 

} 
+0

сделать образы статическими и при каждом добавлении новых изображений к изображениям – Pavya

+0

сделать изображения статическими и при каждом добавлении новых изображений добавить в изображения – Pavya

+0

declare 'public int i = 0;' as global –

ответ

0

пожалуйста держите переменную я как статические

т.е. статический Int я = 0;

final Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 

     public void run() { 
      imgView.setImageResource(images[i]); 
      i++; 
      if(i>images.length-1) 
      { 
       i=0; 
      } 
      handler.postDelayed(this,5000); //for interval... 
     } 

    }; 
    handler.postDelayed(runnable, 5000); //for initial delay.. 
+0

добавить статическую переменную i под частным статическим ImageView imgView; не в oncreate деятельности объявление статической переменной должно быть вне метода oncreate() – krishna

0

изменить код ручки, как следовать

final Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 

     public void run() { 
      imgView.setImageResource(images[i]); 

      if(i>images.length-1) 
      { 
       i=0; 
      } 
      else 
      { 
        i++; 
      } 
      handler.postDelayed(this,5000); //for interval... 
     } 
}; 
handler.postDelayed(runnable, 5000); //for initial delay.. 
+0

да вам нужно добавить его в массив также – krishna

1

если вы хотите добавить изображение Динамически вы можете Называя файл изображения, как это: Image1.png; Image2.png; и так далее.

И тогда вам не нужно вызывать все из них в массиве, вместо этого вы можете использовать lopp для получения имени изображения в ресурсе.

, а затем получить идентификатор, используя код ниже:

public int getID(String resourceName,Context context){ 
     Resources resources = context.getResources(); 
     final int resourceId = resources.getIdentifier(resourceName, "drawable", 
       context.getPackageName()); 
     return resourceId; 
    } 

Примечание: после добавления изображения, не забудьте increament петлю. Надеюсь, поможет.

+0

, где будут изменения, необходимые в code.new для android –

+0

imageView.setImageResoure(). выше метод возвращает идентификатор имени изображения. –

Смежные вопросы