使代码很漂亮(布局)

时间:2010-07-21 21:23:26

标签: android relativelayout

所以我做了一小段代码,插入并操作了一些图像。现在我的主要问题是,这是非常丑陋和漫长的,我想知道是否可以采取任何措施使其更漂亮。

    RelativeLayout mRelativeLayout = (RelativeLayout) findViewById(R.id.board);

    ImageView i = new ImageView(this);
    i.setImageResource(R.drawable.blue_1);
    i.setId(400);

    ImageView j = new ImageView(this);
    j.setImageResource(R.drawable.red_1);
    j.setId(401);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(40,62);
    params.addRule(mRelativeLayout.ALIGN_PARENT_BOTTOM);
    RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(40,62);
    params1.addRule(mRelativeLayout.ALIGN_PARENT_BOTTOM);
    params1.addRule(mRelativeLayout.RIGHT_OF, 400);    

    mRelativeLayout.addView(i, params);
    mRelativeLayout.addView(j, params1);
    setContentView(mRelativeLayout);

例如我尝试过只使用一个布局,但即使我在添加第一张图片后对其进行了更改,它似乎也会影响两张图片。

此外我还有一个函数,可以返回一个字符串,如blue_1 o red_1作为字符串,以帮助我打印我的图像,但它不允许我将字符串放入i.setImageResource来获取图片:(

我该怎么办?

1 个答案:

答案 0 :(得分:2)

整理代码的最佳方法是摆脱几乎所有代码,只需在XML文件中定义布局即可。这样您就可以调用setContentView(R.layout.my_layout_name)而不是自己手动创建小部件和布局参数。如果您不太熟悉在XML中声明布局,请查看the dev docs。或者,如果您需要单独实例化UI的不同部分,则可以使用LayoutInflater 夸大布局。

对于第二个问题,Resources类有一个getIdentifier方法。你可以这样做:

getResources().getIdentifier("blue_1", "drawable", "com.my.package.here")

这将返回资源ID,然后您可以使用该ID而不是R.drawable.blue_1