2012-09-27 149 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