1.自定义EditText
例如上面这个有下划线的EditText,就是自定义的
/** * 自定义EditText * @author tanlvxu * */ public class MyEditText extends EditText { private static final int SEG_CNT = 9;//总的下划线,上图所示9个 private static final int SEG_GAP_WIDTH = 2;//每个下划线的间距2 /** *必须重写两个构造方法 */ public MyEditText(Context context, AttributeSet attrs) { super(context, attrs); } public MyEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } // public MyEditText(Context context) { // super(context); // } /** * 要改变其外形,重写其onDraw()方法,改变其点击事件,重写其onClick等方法 */ @Override public void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setStyle(Style.FILL); int height = getHeight();//获取父件高度 int width = getWidth();//获取父件宽度 int segLength = (width + SEG_GAP_WIDTH)/SEG_CNT - SEG_GAP_WIDTH;//求得每一根下滑线的长度 for(int i = 0; i < SEG_CNT; i++) { canvas.drawRect(i * (segLength + SEG_GAP_WIDTH), height -1 , i * (segLength + SEG_GAP_WIDTH) + segLength, height, paint); } } }
在xml对应的布局中
<com.example.guseewho.MyEditText android:background="#00000000" android:ems="10" android:textColor="#FFFFFFFF" > </com.example.guseewho.MyEditText>
要把它的背景设置成透明,#00000000
前两个0是透明度00到ff,从透明到不透明
后面6个0对应的是RGB值.具体可以参照比色表.
http://www.wahart.com.hk/rgb.htm
2.自定义SurfaceView
做这个游戏的时候,查了很多资料,把surfaceView放在xml上比直接显示要好些.
并且能够加任意控件.
/** * 自定义SurfaceView * @author tanlvxu * */ public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback, Runnable { private SurfaceHolder surfaceHolder ;//控制器 /** * 要放入布局中,必须实现其两个参数的构造方法 * @param context * @param attrs */ public MySurfaceView(Context context, AttributeSet attrs) { super(context, attrs); surfaceHolder = getHolder(); surfaceHolder.addCallback(this); /** * Canvas canvas = surfaceHolder.lockCanvas() ; //锁定屏幕,获取画布 * surfaceHolder.unlockCanvasAndPost(canvas) ;//传递画布,开始绘画 */ } @Override public void run() { /** * 刷新画布 */ } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } /** * 创建时调用该方法 */ @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub /** * 线程在这启动 * 通过getHeight() ; getWidth();获取其控件的大小 */ } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub /** * 可以在这里关闭线程 */ } }
再Activity中的setContentView();方法之后再取得该组件,不然会报空指针异常
在xml中:
<com.example.view.GameView android:id="@+id/MySurfaceView" android:layout_width="自己定义" android:layout_height="自己定义" > </com.example.view.GameView>
要更好的控制游戏的存储与读取,可以加个Dialog
要在上面加广告,可以在暂停游戏的时候做点功夫
相关推荐
android 开发进阶 自定义控件 类似 TextView
《Android自定义控件开发入门与实战》高清影印版,带目录,拒绝压缩包加密坑钱,内容深入浅出,对于有Android自定义开发需求的非常有帮助
Android自定义控件开发入门与实战从自定义基础到实战的讲解。一步步深入。适合有一定Android基础的读者。本压缩包中自带了推荐的pdf阅读器。大家要是喜欢这本文档,推荐去京东,天猫,当当买支持一下默默付出的作者...
教程名称: 尚硅谷Android视频教程《自定义控件》Android自定义控件,是中高级程序员必须熟练掌握的技术之一。本套视频涵盖了安卓自定义开发过程中所有的技术问题,课程中讲授的例子全部来源于企业。学习本套视频后...
《Android自定义控件开发入门与实战》从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能...
安卓自定义的开关控件,就像苹果ios那样的Toggle
该自定义控件是一个可以滑动改变温度值的表盘控件
android 开发进阶 自定义控件-仿ios自动清除控件
安卓开发-自定义控件入门级demo.zip
Android自定义控件详细开发教程
android自定义控件与特效,对于有一定android开发基础的人来说很有用哦。
custom工程演示了App开发的自定义控件相关知识,包括:自定义视图的步骤(声明属性、构造对象、测量尺寸、绘制视图)、自定义简单动画(任务片段、下拉刷新动画、圆弧进度动画)、自定义对话框的操作(对话框、改进...
安卓开发-Android自定义控件知识 - 博客园
Android开发中,自定义控件是非常常用的,我写了一个简单例子,主要是思路,和大家交流,相互学习
Android自定义控件.pdf 自定义控件开发参考
Android自定义滑动接听电话控件组
ProgressWheel 支持进度显示的圆形ProgressBar.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android环形统计图 既能展示百分比,又能展示描述文字,且从环上拉出一条线出去进行展示,并且有颜色区分; int[] data = {100,20,9,71}; String[] text = {"红色","黄色","蓝色","绿色"}; String[] colors = {"#ff...
可以按照加载进度设置的CircleBar 自定义控件 AndroidStudio项目