6

我想创建从屏幕上部向下的图像。

直到今天我有这个:

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

2 回答 2

9

您可以使用类似的东西创建布局

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您刚刚创建的内容中。但我强烈建议通读文档以了解在这里可以做什么。

视图组

看法

编辑

ImageView myImage = new ImageView(this);
picLL.addView(myImage);
//set attributes for myImage;
于 2013-02-26T19:59:47.403 回答
4

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

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); 

 }
}
于 2017-09-19T12:49:04.057 回答