0

ビューをサブクラス化して、カスタム コントロールを作成しました。以下は、x、y、幅、高さを設定しようとしているコードです。

しかし、画面上にビューを配置するために x と y を設定することはできません。

    public class MyAdvertisement extends View{

        public MyAdvertisement(){
            super(null);
            System.out.println("This first");
            this.setBackgroundColor(android.graphics.Color.RED);
            this.setMinimumWidth(500);
            this.setMinimumHeight(100);
        }

        public MyAdvertisement(Context context){
            super(context);
            this.setBackgroundColor(android.graphics.Color.YELLOW);
            this.setMinimumWidth(500);
            this.setMinimumHeight(100);
        }

        public MyAdvertisement(Context context, AttributeSet attrs){
            super(context, attrs);
            this.setBackgroundColor(android.graphics.Color.YELLOW);
            this.setMinimumWidth(500);
            this.setMinimumHeight(50);
            LayoutParams layoutParams=new LayoutParams(500,50);
            layoutParams.setMargins(0, 400,0,0);
            this.setLayoutParams(new LinearLayout.LayoutParams(layoutParams));

        }

        public MyAdvertisement(Context context, AttributeSet attrs, int defStyle){
            super(context, attrs, defStyle);
            this.setBackgroundColor(android.graphics.Color.GREEN);
            this.setMinimumWidth(500);
            this.setMinimumHeight(100);

        }

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <view
        class="com.rciicustomclass.MyAdvertisement"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/myb"
        android:tag="tag"
         />
</LinearLayout>

ビューを画面の下部に配置したい。

4

2 に答える 2

2

私はRelativeLayoutを使用することをお勧めします:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <"com.rciicustomclass.MyAdvertisement"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

さらに、centering、alignParentLeft、centerVertical、centerHorizo​​ntalなど、ビューを配置するための他のタグがたくさんあります。
また、それらを相互に相対的に配置することもできます。

于 2012-11-15T08:34:20.917 に答える
2

android:layout_alignParentBottom="true"カスタムビューでRelativeLayoutを使用する必要があります。また、クラス名をXML要素の名前として直接指定できます。

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

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <com.rciicustomclass.MyAdvertisement
        android:id="@+id/myb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:tag="tag" />

</RelativeLayout>
于 2012-11-15T08:34:38.763 に答える