android继承view
① android 继承viewGroup自定义了一个视图,那个自定义的视图在activity的oncrate方法里面添加子。。
添加的子View,如果用hierarchyviewer工具可以看到,而你看不到,那么可能原因有:
是你添加子View的时候里面已经有View了,并被盖住了。可以先调用removeAllViews()试下。
oncreate能看到,onresume不能看到,调用setContentView()方法试下,应该是没有刷新当前界面
② android自定义控件继承View,其中父类的三个构造方法有什么区别
android开发者网站上有相关的说明文档: public View (Context context)是在java代码创建视图的时候被调用,如果是从xml填充的视图,就不会调用这个 public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用 public View (Context context, AttributeSet attrs, int defStyle)这个不用说也懂了吧
③ android问题 继承view类的一个类里面定义的width,height,margin值从哪获取
可以通过调用this.getHeight等方法获取定义此控件时设置的宽高等属性
④ android中的View是做什么的
View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展。在游戏开发中叶可以自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要。在Android中,任何一个View类都只需重写onDraw 方法来实现界面显示,自定义的视图可以是复杂的3D实现,也可以是非常简单的文本形式等。
游戏中最重要的就是需要与玩家交互,比如键盘输入、触笔点击事件,我们如何来处理这些事件呢?Android中提供了 onKeyUp、onKeyDown、onKeyMultiple、onKeyPreIme、onTouchEvent、onTrackballEvent等方法,可以轻松地处理游戏中的事件信息。所以,在继承View时,需要重载这几个方法,当有按键按下或弹起等事件时,按键代码自动会传输给这些相应的方法来处理。
游戏的核心是不断地绘图和刷新界面,图我们已经通过onDraw 方法绘制了,下面来分析如何刷新界面。Android中提供了 invalidate 方法来实现界面刷新,注意,invalidate 不能直接在线程中调用, 就是不可以在子线程中调用明白乎?因为它违背了 Android的单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI 线程中执行,因此Android中最常用的方法就是利用Handler来实现UI线程的更新。 其实用 AsyncTask 也可以。
⑤ android画图一定要继承view或surfaceView,在线程里一直画吗
第一,不一点用surfaceview,亦可继承view;第二,是不是画一次,或者多次,由你代码控制第三,ondraw是一个回调函数,canvas为空,证明你调用有错
查看原帖>>
⑥ Android 继承View 覆写onKeyDown 不响应
android的窗口手势有传递机制, windowmanager-----> activity -----> view
onkeydown 首先被 activity 拦截了,没有返回,你尝试在 activity 的onkeydown方法里打印log 就可以看到有执行,所以被这个方法拦截了,就没法执行到你view的onkeydown方法里。
解决方法有: 1 在activity 的onkeydown方法里 return 之前 让view 获取onkeydown焦点 ,
Game_View view = new Game_View (this) ;
view.onKeyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
2 拦截activity的onkeydown手势,让它进入到下层view,这种方法我没试,理论可行
⑦ android中,继承view为什么却拿不到protected的
1.继承view访问scroll?你怎么访问的?
2.你直接访问属性肯定不行的 上面的说的很清楚了。。包内可见、、、
3.api中
4.final int getScrollX()
5.Return the scrolled left position of this view.
6.这个方法可以得到
⑧ android自定义控件必须继承view吗
需要看你实现什么效果。一般自定义控件可以用2种方式:
将现有的控件封装起来,作为一个通用的组件来使用,此时只能用代码的形式调用,无法再xml中引用,例如将textView和Button封装为一个登录控件。
继承View或者ViewGroup,其实ViewGroup也是继承的View。然后依次实现onMeasure()、onLayout()、onDraw(),
onMeasure -- 负责测绘控件的大小
onLayout -- 负责控件中子元素摆放的位置
onDraw -- 负责控件和子控件的绘制,使其显示在屏幕中
一些设计和实现较好的自定义View,一般还需要考虑事件的传递、动画的控制、touch事件的处理等
⑨ android中 自定义了一个MyView(继承自View类) 在xml布局文件中作为组件添加(无错误提示)但运行后报错
1、自定义view需要注意
构造函数
,所有的xml布局,初始化时构造函数使用的都是 (Context context, AttributeSet attrs) {两个参数的。如果没有该构造函数会报错。
2、如果有自定义属性,则需要在当前xml中引入工程包名,否则自定义属性会报错
这个问题报错的愿意是第一个,构造函数使用错误。增加构造函数就能解决问题。
比如:
public class MyView extends View{//下面2个构造函数都加上
public MyView(Context context){
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
}
⑩ Android自定义控件按照对View及其子类的依赖程度可以分为哪三种
摘要 二、继承控件