Android layoutdisplay, макет поверх макета. - PullRequest
1 голос
/ 28 марта 2012

enter image description here

Как показано на рисунке.Я хочу отобразить изображение звезды над макетом.Я новичок в этом типе кодирования.

мой запрос 1) Можно ли будет отображать звезду (изображение) на моей стороне макета?

2) Если при каждом нажатии на мое событие яхотите отобразить как звезду и как второе изображение это будет возможно?Значит на том же экране я должен сохранить звезду с их уважением.

enter image description here спасибо в Advanced?

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Примерно так:

 public class MyActivity extends Activity implements View.OnTouchListener {
     private RelativeLayout _mainLayout;

     /**
     * Called when the activity is first created.
     */
     @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        _mainLayout = (RelativeLayout)findViewById(R.id.canvas);
       _mainLayout.setOnTouchListener(this);
     }

     @Override
     public boolean onTouch(View view, MotionEvent event) {
        final int X = (int) event.getRawX();
        final int Y = (int) event.getRawY();
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
                 ImageView image = new ImageView(this);
                 image.setImageBitmap(bitmap);
                 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(bitmap.getWidth(), bitmap.getHeight());
                 layoutParams.leftMargin = X - bitmap.getWidth()/2;
                 layoutParams.topMargin = Y - bitmap.getHeight()/2;
                 layoutParams.bottomMargin = -250;
                 layoutParams.rightMargin = -250;
                 image.setLayoutParams(layoutParams);
                 _mainLayout.addView(image);
                 break;
           }
           return false;
      }
 }

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">

<RelativeLayout
              android:id="@+id/canvas"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="@drawable/bg0large"
        >
</RelativeLayout>

0 голосов
/ 28 марта 2012

Если вы хотите отобразить один макет поверх другого, вы должны использовать FrameLayout http://developer.android.com/resources/articles/layout-tricks-merge.html

0 голосов
/ 28 марта 2012

Чтобы сделать макет поверх макета, вы должны использовать RelativeLayout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...