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应用开发中,自定义控件是提升用户体验和实现独特设计的重要手段。《Android自定义控件开发入门与实战》这本书深入浅出地讲解了如何在Android平台上创建和使用自定义控件,旨在帮助开发者从基础知识到实战...
在Android开发中,自定义控件是提升应用独特性和功能扩展性的重要手段。"android 开发进阶 自定义控件 类似 TextView" 这个主题,意味着我们将探讨如何基于TextView创建一个具有特定功能或视觉效果的新控件。...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。这个压缩包"Android自定义控件源码.rar"包含了一些自定义控件的源代码,虽然不能保证每个都可直接运行,但它们提供了丰富的学习资源,帮助开发者...
在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。通过自定义控件,开发者可以创建符合特定需求的功能组件,而不仅仅是局限于Android SDK提供的标准控件。本文将深入探讨如何在Android中...
Android自定义控件开发入门与实战从自定义基础到实战的讲解。一步步深入。适合有一定Android基础的读者。本压缩包中自带了推荐的pdf阅读器。大家要是喜欢这本文档,推荐去京东,天猫,当当买支持一下默默付出的作者...
在Android开发中,自定义控件是提升应用界面独特性和用户体验的重要手段。通过自定义控件,开发者可以创建出符合自身需求的UI组件,从而更好地实现应用的功能和设计。本Demo着重介绍了如何在Android中创建自定义控件...
在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。本教程主要探讨如何通过继承和组合的方式来自定义控件,适用于已经有一定Android基础的开发者进行进阶学习。 首先,我们来理解自定义...
在Android开发中,自定义控件是提升应用独特性和用户体验的有效方式。本教程将引导初学者如何简单地创建一个自定义控件,该控件基于`LinearLayout`进行扩展。通过这个过程,我们可以深入理解Android UI组件的工作...
在Android开发中,自定义控件是提升用户体验和界面独特性的重要手段。本文将深入探讨一个特定的自定义控件——“滑动温度表盘控件”,它允许用户通过滑动来调整显示的温度值。这个控件适用于各种需要显示和调节温度...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本教程将通过一个具体的实例——saRoundProgressBarDemo,来教你如何编写一个自定义的圆形进度条控件。这个自定义控件不仅提供了基本的进度显示...
对于初学者来说,理解并实践这些知识点是提升Android开发技能的关键一步。在实际开发中,你可能需要根据具体需求进行更复杂的定制,例如添加动画效果、绘制自定义图形等。不断探索和实践,你将能够熟练掌握自定义...
在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。"android之自定义开关控件"这个主题旨在教你如何在Android平台上创建一个类似苹果iOS Toggle的自定义开关组件。以下是对这个主题的详细讲解...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。组合控件,顾名思义,是指将多个基本控件通过特定的方式组合在一起,形成一个具有新功能或新外观的复合控件。本篇文章将深入探讨如何在Android中...
在Android开发中,自定义控件是提升应用用户体验和实现独特设计的重要手段。本文将深入探讨Android自定义控件的概念、重要性以及如何通过重写已有控件来扩展其功能,帮助开发者从初阶迈进高阶。 首先,我们了解什么...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。这个“安卓自定义控件相关-自定义控件入门级demo.zip”压缩包包含的两个子文件,"zdyview2"和"zdyview",很可能是两个示例项目,用于帮助开发者...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件允许开发者根据需求扩展标准Android组件,实现独特的界面效果和交互逻辑。这篇博客将深入探讨如何在Android中创建自定义控件,并提供...
在Android开发中,自定义控件是提升应用独特性和功能扩展性的重要手段。这个压缩包“CustomViews”很可能是包含了一系列Android自定义控件的示例项目,旨在帮助开发者理解和学习如何在Android Studio 1.0.2环境下...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本示例"Android 自定义控件简单Demo"将向我们展示如何创建一个结合图片和文字的自定义控件,这通常用于构建定制化的按钮、标签或其他UI元素。...
在Android开发中,自定义控件是提升应用界面独特性和用户体验的重要手段。通过自定义控件,开发者可以创建出独具特色的界面元素,满足特定的设计需求。这个“安卓开发-自定义控件入门级demo.zip”文件很显然是一个...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本资源"android自定义控件源码"提供了一套详细的自定义控件实现案例,帮助开发者深入理解自定义控件的工作原理和实现方法。配合文章《Android...