0

我想创建动态ImageView,但它没有出现,有什么帮助吗?

@Override public boolean onTouchEvent(MotionEvent event) {
    RelativeLayout myLayout = new RelativeLayout(this);

    ImageView stone = new ImageView(this);
    stone.setImageResource(R.drawable.pedra);
    stone.setVisibility(View.VISIBLE);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);

    myLayout.addView(stone, lp);

    return true;
}
4

4 回答 4

1

试试这个,它会帮助你

主要的.xml

 <RelativeLayout 
       android:id="@+id/relativelayout"....>
 </RelativeLayout>

在 MainActivity.java

public class MainActivity extends Activity {

   private RelativeLayout rLayout;

   @Override
   protected void onCreate(Bundle savedInstance) {

       super.onCreate(savedInstance);
       setContentView(R.layout.main);

       rlayout = (RelativeLayout) findViewById(R.id.relativeLayout);


   }

   @Override 
   public boolean onTouchEvent(MotionEvent event) {

      ImageView stone = new ImageView(this);
      stone.setImageResource(R.drawable.pedra);
      stone.setVisibility(View.VISIBLE);

      rLayout.addView(stone);

     return true;
   }
 }
于 2012-11-18T23:54:50.017 回答
1

您的代码是正确的,但没有太大影响,因为它是为艺术而艺术。您创建RelativeLayout,然后创建ImageView,然后添加ImageView到您的RelativeLayout. 这很有效,但要使其显示您的布局,必须将其添加到显示的层次结构中。因此,我将添加RelativeLayout到您的 xml 布局文件中,使用 分配id给它android:id,然后在您的触摸中执行findViewById()并添加在ImageView那里创建。

于 2012-11-19T00:27:39.917 回答
0

你忘了给你充气myLayout

于 2012-11-18T23:48:03.970 回答
0

对于某些设备,也将所有图像放在drawable-xhdpi目录中。

于 2017-03-25T07:42:27.537 回答