自定义控件二
2016-07-07 15:29
169 查看
======================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>
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>
相关文章推荐
- JAVA三个线程依次打印ABC
- mongodb 主从切换
- centos yum安装ssl证书可供ios app下载使用
- 显示和隐藏table中的border
- JNI官方规范中文版——从一个简单的例子开始
- Oracle 查询类似 select top 的用法
- Http幂等性
- asp.net ajax get post 中文乱码解决办法
- 简单掌握Python的Collections模块中counter结构的用法
- 在互联网时代,你是消费者还是创造者?
- 解决数据库性能瓶颈的几种方法 - NoSql视角(草稿)
- XPath学习:基本语法(一)
- Android Studio异常"The plugin org.jetbrains.android failed to save settings and has been disabled"处理总结
- 为 SharePoint 2013 服务器场配置传出电子邮件
- IK和粒子的Simulation Space导致的位置错误问题
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
- java多线程基础(5)-调度方式之暂停当前线程方式4-连接线程(join)
- Linux统计某文件夹下文件、文件夹的个数
- 手把手教你做安豆计算器(七)-“关于”界面
- [note] 既然 typedef, 为何还要使用 define?