長方形の単純なカスタム ビューを作成しました。レイアウトに追加できますが、クラスで定義されている色を変更できません。
私のクラス:
package com.example.customview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
public class CustomRect extends View {
Rect rect;
Paint blue;
public void init() {
rect = new Rect(0, 0, 200, 200);
blue = new Paint();
blue.setColor(Color.BLUE);
blue.setStyle(Paint.Style.FILL);
}
public CustomRect(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public CustomRect(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomRect(Context context) {
super(context);
init();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(rect, blue);
invalidate();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(200, 200);
}
}
私の活動:
package com.example.customview;
import android.app.Activity;
import android.os.Bundle;
public class RectActivity extends Activity{
CustomRect rect;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
rect = new CustomRect(this);
setContentView(rect);
}
}
私のレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<view
android:id="@+id/thisId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
class="com.example.customview.CustomRect" />
</LinearLayout>
誰かがそれをする考えを持っているなら。ありがとう。