我想创建将从屏幕上方向下移动的图像。
到今天为止,我有这个:
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。但是如何将linearlayout添加到现有布局?
提前致谢:)
答案 0 :(得分: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
。但我强烈建议您阅读文档,了解这里可以做些什么。
修改强>
ImageView myImage = new ImageView(this);
picLL.addView(myImage);
//set attributes for myImage;
答案 1 :(得分: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);
}
}