2013-03-12 42 views
6

Tôi đã viết mã này mà tải một hình ảnh để trong widget ImageView:Tạo ImageViews động bên trong một vòng lặp

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 bây giờ, tôi muốn tải một vài hình ảnh. cho điều này tôi cần phải tạo các khung nhìn hình ảnh động nhưng tôi không biết làm thế nào ...

Tôi muốn chạy mã của tôi bên trong một vòng lặp for:

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

vấn đề chính của tôi là tạo ra nhiều ImageViews bên trong một vòng lặp tự động

+0

Có một lý do cụ thể vì sao các điều khiển danh sách tích hợp của Android không thể sử dụng được? – Premsuraj

+0

@ Premsuraj: không, tôi có thể sử dụng các widget được xây dựng cho mục đích này không? làm sao? – Fcoder

+0

Tại sao bạn cần nhiều chế độ xem hình ảnh? Mục đích là gì? bạn có cần hiển thị hình ảnh trong danh sách không? –

Trả lời

14

bạn có thể thay đổi cách bố trí, tài nguyên hình ảnh và không có hình ảnh (có thể năng động cũng) theo yêu cầu của bạn ...

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

Hi Hussain. Tại sao bạn đặt setMaxHeight và setMaxWidth? –

+0

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

+0

chúng ta có thể đặt lề cho số lần xem đó không? –

0

Nếu yêu cầu của bạn được hiển thị trong Danh sách hoặc Chế độ xem lưới thì bạn nên đi tới Danh sách tải hoặc xếp hạng tải xuống.

Vui lòng xem qua liên kết bên dưới.

https://github.com/thest1/LazyList

https://github.com/abscondment/lazy-gallery

+0

tôi muốn hiển thị một số hình ảnh bên trong trong trình xem ảnh. như ứng dụng instagram – Fcoder

1

Bạn có thể sử dụng mã này để tạo ra 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); 

nơi theLayout là cách bố trí mà bạn muốn thêm xem hình ảnh của bạn để.

Để biết thêm tùy chỉnh, hãy xem trang dev, nơi tất cả các tùy chọn có thể được liệt kê.

0

Hãy thử điều này

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); 
    } 
Các vấn đề liên quan