2

所以我编写了一小段代码来插入和操作一些图像。现在我的主要问题是它非常丑陋而且很长,我想知道是否可以做任何事情让它更漂亮。

    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 或 red_1 作为字符串来帮助我打印我的图像,但它不允许我将字符串放入 i.setImageResource 来获取图片:(

我能做些什么?

4

1 回答 1

2

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

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

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

这将返回资源 ID,然后您可以使用它来代替R.drawable.blue_1.

于 2010-07-21T21:43:54.390 回答