values下新建 attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="titleText" format="string" />
<attr name="titleTextColor" format="color" />
<attr name="titleTextSize" format="dimension" />
<!--name要换-->
<declare-styleable name="Fragment">
<attr name="titleText" />
<attr name="titleTextColor" />
<attr name="titleTextSize" />
</declare-styleable>
</resources>
新建类继承View 调用onDraw方法 在此方法中写
public class Fragment extends View {
public Fragment(Context context) {
super(context);
}
public Fragment(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public Fragment(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public Fragment(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
}
在activity_main.xml中添加
<项目名称.Fragment
android:layout_width="match_parent"
android:layout_height="match_parent"></项目名称.Fragment>
并且设置全局id,如:
android:id="@+id/root"在MainActivity.java中:
public class MainActivity extends AppCompatActivity {
private LinearLayout mRoot;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mRoot = (LinearLayout) findViewById(R.id.root);
//Fragment extends View
Fragment aa = new Fragment(this);//主要
aa.invalidate();//主要
mRoot.addView(aa);//主要
}
}
其他的看其他博客就可以了,如:
android学习笔记09:Paint及Canvas的简单应用
Android 自定义View 之 2D绘图(Canvas+paint)详解
Android自定义View之基本API(三)