0
我創建了一個矩形的簡單自定義視圖。我可以將它添加到我的佈局中,但不能更改它在類中定義的顏色。將屬性添加到android中的自定義控件
我的課:
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>
如果任何人有任何想法做。謝謝。
好的,謝謝..... –
它是否解決問題了嗎? – Simon
對不起,這似乎有一個誤解。它對藍色效果很好。但是如何隨時從xml中改變它。謝謝。 –