自定义控件二

来源:互联网 发布:淘宝网商城裙子 编辑:程序博客网 时间:2024/05/21 17:24

======================MainActivity===========================

package com.hf.circle;


import android.os.Bundle;
import android.support.v4.app.FragmentActivity;


public class MainActivity extends FragmentActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// FragmentManager fm = getSupportFragmentManager();
// FragmentTransaction transaction = fm.beginTransaction();

getSupportFragmentManager().beginTransaction().replace(R.id.rl, new MyFragment()).commit();
}
}


=====================MyFragment===========================

package com.hf.circle;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class MyFragment extends Fragment {


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.myfragment, null);

return v;
}
}


==============================MyCircle=============================

package com.hf.circle;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;


public class MyCircle extends View {


public MyCircle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}


/**
* 在布局文件里引用时会调用此方法
* @param context
* @param attrs
*/
public MyCircle(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}


/**
* 代码
* @param context
*/
public MyCircle(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

/**
* 测量
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//固定的宽高
setMeasuredDimension(100, 100);
}

/**
* 画
*/
@Override
protected void onDraw(Canvas canvas) {
//画笔
Paint paint = new Paint();
paint.setColor(Color.RED);

paint.setStyle(Style.FILL);
//效果
paint.setAntiAlias(true);

canvas.drawCircle(50, 50, 50, paint);

super.onDraw(canvas);
}



}


=====================activity_main======================

<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"
    android:id="@+id/rl"
    tools:context="com.hf.circle.MainActivity" >




</RelativeLayout>

=======================myfragment========================

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


    <com.hf.circle.MyCircle
        android:id="@+id/circle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


</LinearLayout>

0 0