2013-02-26 121 views
3

我想创建将从屏幕上部下来的图像。以编程方式将ImageView添加到布局

对于走到今天我有这样的:

ImageView mario = (ImageView) findViewById(R.id.mario); 
TranslateAnimation anim = new TranslateAnimation(0f, 0f, 0, 400); 
anim.setInterpolator(new LinearInterpolator()); 
anim.setRepeatCount(Animation.INFINITE); 
anim.setDuration(800); 
mario.startAnimation(anim); 

的问题是,我要设置布局上的XML文件中的ImageView和这个代码只只创建1张图片。

我想编程应用程序在屏幕的上半部分创建几个图像(例如在一个循环中)并让它们在屏幕上下拉。 (这里我使用TranslateAnimation)。 我发现这样的事情:

ImageView mario = (ImageView) findViewById(R.drawable.mario); 

但我不知道如何设置这是不是在XML文件中的ImageView的位置(这可能吗?)。 我虽然关于创建LinearLayout并将其添加到ImageView。但是如何将线性布局添加到现有布局?

感谢提前:)

回答

4

您可以创建一些布局像

View view = (View) findViewById(R.layout.current_layout); //the layout you set in `setContentView()` 
LinearLayout picLL = new LinearLayout(CurrentActivity.this); 
picLL.layout(0, 0, 100, 0); 
picLL.setLayoutParams(new LayoutParams(1000, 60)); 
picLL.setOrientation(LinearLayout.HORIZONTAL); 
((ViewGroup) view).addView(picLL); 

什么参数你layout()传递显然将取决于你想要什么。然后,您可以创建单独的Views以添加到您刚刚创建的Layout。但我强烈建议通过阅读文档来理解这里可以完成的一切。

ViewGroup

View

编辑

ImageView myImage = new ImageView(this); 
picLL.addView(myImage); 
//set attributes for myImage; 
+0

最后一句'((ViewGroup中)视图).addView (picLL);'不rk,因为:“类型 ViewGroup无法解析为某种类型”。另外为什么我们不使用'view'?最后一个问题 - 如何将ImageView添加到此视图? – Ganjira 2013-02-26 21:11:38

+0

'ViewGroup'允许你添加项目到'View'。你可以试试'View',但我不相信它会添加一些东西,但是当我再花几分钟时间的时候我会检查它。我将编辑我的答案,将“ImageView”添加到布局 – codeMagic 2013-02-26 21:35:26

1

使用下面的代码,您可以添加图像动态

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
ImageView imageview = new ImageView(MainActivity.this); 
RelativeLayout relativelayout = (RelativeLayout)findViewById(R.id.relativeLayout); 
LinearLayout.LayoutParams params = new LinearLayout 
.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

// Add image path from drawable folder. 
imageview.setImageResource(R.drawable.demo_new_image); 
imageview.setLayoutParams(params); 
relativelayout.addView(imageview); 

} 
} 
相关问题