2012-09-27 165 views
3

我是Android的新手。我有一個要求,我必須將imageViews動態添加到線性佈局,然後必須單獨爲每個圖像設置動畫。動態添加imageViews到線性佈局

我不知道如何將imageViews動態添加到線性佈局。 Plz幫助我。

感謝

+0

但搜索框? – Blackbelt

回答

6

您可以添加view動態這樣。

LinearLayout.LayoutParams imParams = 
    new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
ImageView imSex = new ImageView(context); 
imSex.setImageResource(getmyImage()); 

mainlayout.addView(imSex,imParams); 
1

看到這個

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.rainbow); 
    ImageView tv1 = new ImageView (this); 
    tv1.setImageresorce(R.drawable.image1); 
    ImageView tv2 = new ImageView (this); 
    tv2.setImageresorce(R.drawable.image2); 
    ImageView tv3 = new ImageView (this); 

    tv3.setGravity(Gravity.CENTER); 
    tv3.setImageresorce(R.drawable.image3); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    ll.setGravity(Gravity.CENTER); 
    ll.addView(tv1); 
    ll.addView(tv2); 
    ll.addView(tv3); 
    setContentView(ll); 
} 

看到這個有用的數據

http://mobile.tutsplus.com/tutorials/android/android-layout/

1

你可以給這段代碼一試。它還具有用於設置ImageView的尺寸以及多個ImageView's之間的餘量的位。 int dimens = 45int dimensMargin = 4;pixel值,並正在轉換爲dp。

LinearLayout linlaLikes必須在您的佈局XML然後投入您的活動。

LinearLayout linlaLikes = (LinearLayout) findViewById(R.id.linlaLikes); 
ImageView imgUsers = new ImageView(getApplicationContext()); 

// SET THE IMAGEVIEW DIMENSIONS 
int dimens = 45; 
float density = getResources().getDisplayMetrics().density; 
int finalDimens = (int)(dimens * density); 

LinearLayout.LayoutParams imgvwDimens = new LinearLayout.LayoutParams(finalDimens, finalDimens); 
imgUsers.setLayoutParams(imgvwDimens); 

// SET SCALETYPE 
imgUsers.setScaleType(ScaleType.CENTER_CROP); 

// SET THE MARGIN 
int dimensMargin = 4; 
float densityMargin = getResources().getDisplayMetrics().density; 
int finalDimensMargin = (int)(dimensMargin * densityMargin); 

LinearLayout.LayoutParams imgvwMargin = new LinearLayout.LayoutParams(finalDimens, finalDimens); 
imgvwMargin.setMargins(finalDimensMargin, finalDimensMargin, finalDimensMargin, finalDimensMargin); 

// SET YOUR IMAGER SOURCE TO YOUR NEW IMAGEVIEW HERE 

// ADD THE NEW IMAGEVIEW WITH THE PROFILE PICTURE LOADED TO THE LINEARLAYOUT 
linlaLikes.addView(imgUsers, imgvwMargin); 
0

您可以使用片段爲這個http://developer.android.com/guide/components/fragments.html

FragmentManager fragmentManager = getFragmentManager() 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
ExampleFragment imageFragment = new ExampleFragment(); 
fragmentTransaction.add(R.id.image_container, imageFragment); 
fragmentTransaction.commit(); 
+0

感謝所有的評論。我設法只在gridView中滿足requiremnets。但現在我陷入了一個問題。問題是這樣的要求規定,當GridView的視圖被填充並且視圖向下移動時,垂直滾動應該自動滾動以顯示新加載的圖像。我嘗試使用gridView.smoothScrollToPosition(position); gridView.setSelection(position);但在使用它們時,我的應用程序崩潰了。如何爲GridView啓用自動垂直滾動?幫助我。 – Priety

+0

發佈(新的Runnable(){ @Override public void run(){ gridView.setSelection(index); } }); – Greensy