android自定义视图添加布局文件,android – 添加自定义视图作为XML布局的视图
方案如下:
我有一个活动RunTrainingWorkoutsView,它使用XML布局_run_workout.xml_,其中一些标签由CountDownTimer更新.工作正常…
现在,除了每秒通过onTick()CountDownTimer对象的回调方法更新的标签,我想在我的_run_workout.xml layout_中添加一个自定义表面视图,它将绘制一些每秒由同一onTick()方法更新的弧. .
我的run_workout.xml:
android:id="@+id/counter_clock_surface"
android:layout_width="300dp"
android:layout_height="240dp">
我的自定义View扩展了surfaceView
public class CounterClockView extends SurfaceView {
Paint paint = new Paint();
Paint paint2 = new Paint();
final RectF rect = new RectF();
final RectF rect2 = new RectF();
int counterArcAngle = 15;
//constructor
public CounterClockView(Context context, AttributeSet attributeSet) {
super(context);
//setting some paint properties...
this.setBackgroundColor(Color.TRANSPARENT);
}
@Override
public void onDraw(Canvas canvas) {
rect.set(50, 50, 150, 150);
rect2.set(50, 50, 150, 150);
this.layout(0, 0, 200, 200);
canvas.drawArc(rect, -90, 360, false, paint);
canvas.drawArc(rect2, -90, counterArcAngle, false, paint2);
}
扩展活动的主要类是使用以下代码在布局中获取对自定义surfaceView的引用:
//counterClockView is declared outside of onCreate() as CounterClockView counterClockView;
//later in onCreate(){....
counterClockView = (CounterClockView) findViewById(R.id.counter_clock_surface);
问题是改变customView对象的成员变量的值(counterClockView)
counterClockView.counterArcAngle = 10;
将崩溃应用程序…
另外,从我的主要活动开始,我想调用invalidate()方法在更改counterArcAngle值后重做表面视图,但这会导致应用程序崩溃…
为什么不能创建counterClockView对象并将其引用到相同类型的xml布局元素并更改其外观,使其无效等?
编辑LogCat:
threadid=1: thread exiting with uncaught exception (group=0x40015560)
ERROR/AndroidRuntime(487): FATAL EXCEPTION: main
ERROR/AndroidRuntime(487): java.lang.RuntimeException: Unable to start activity ComponentInfo{training.timer/training.timer.RunTrainingWorkoutsView}: java.lang.NullPointerException
ERROR/AndroidRuntime(487): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
ERROR/AndroidRuntime(487): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
ERROR/AndroidRuntime(487): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
ERROR/AndroidRuntime(487): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
ERROR/AndroidRuntime(487): at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(487): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(487): at android.app.ActivityThread.main(ActivityThread.java:3683)
ERROR/AndroidRuntime(487): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(487): at java.lang.reflect.Method.invoke(Method.java:507)
ERROR/AndroidRuntime(487): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
ERROR/AndroidRuntime(487): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
ERROR/AndroidRuntime(487): at dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(487): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(487): at training.timer.RunTrainingWorkoutsView.onCreate(RunTrainingWorkoutsView.java:72)
ERROR/AndroidRuntime(487): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
ERROR/AndroidRuntime(487): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
ERROR/AndroidRuntime(487): ... 11 more
解决方法:
经过3天的攻击,我的头靠在墙上,谷歌搜索,stacOverflowing等我得到了它.
实际上,这是一个愚蠢的小事……
我的XML文件,我定义了包含一些常见的android视图(即textView和按钮)的布局和我的自定义视图CounterClockView:
android:id="@+id/counter_clock_surface"
android:layout_width="300dp"
android:layout_height="240dp">
我必须增加一条线!
xmlns:android="http://schemas.android.com/apk/res/android" !!!
android:id="@+id/counter_clock_surface"
android:layout_width="300dp"
android:layout_height="240dp">
我不知道为什么这个命名空间行产生了如此巨大的差异,但它的效果很好!
现在,我可以在CountDownTimer()的每个onTick()上从我的主要活动更新我的自定义视图…
标签:android,android-layout,surfaceview
来源: https://codeday.me/bug/20191003/1846023.html
android自定义视图添加布局文件,android – 添加自定义视图作为XML布局的视图相关推荐
- android中的xml布局文件如何引用另一个xml布局文件,引用另一个layout.xml文件而不复制它...
如果我理解正确提问者对XLARGE和SW-600dp的一个布局文件,另一个用于所有的休息.无论如何,当我偶然发现这个问题时,就是这样. 可以通过创建文件夹layout-xlarge和layout-s6 ...
- android 将app添加进入文件的打开方式
今天,简单讲讲android里如何将自己的app添加进入文件的打开方式. 最近因为换租房的原因,状态很不好.今天尝试写点android的代码的内容.其实很简单,我们只需在AndroidManifest ...
- java数字时钟代码,Android自定义数字时钟代码,android自定义时钟,package jp.t
Android自定义数字时钟代码,android自定义时钟,package jp.tpackage jp.tsmsogn.digitalclock;import java.util.Calendar; ...
- 【Android Training - Performance】提高显示布局文件的性能[Lesson 3 - 按需载入视图(ViewStub的使用方法)]
Loading Views On Demand [按需载入视图] 某些时候,我们需要一些很复杂的视图却仅仅很少用到.如果我们在它仅仅需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验. ...
- android自定义dialog布局文件,Android自定义Dialog及其布局
实际项目开发中默认的Dialog无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中,才能在 ...
- android创建布局文件,android学习——Android Studio下创建menu布局文件
一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...
- android添加动画文件,Android开发之图形图像与动画(五)LayoutAnimationController详解
首先需要先介绍下LayoutAnimationController: * 1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup * 里面 ...
- android自定义空的view,ListView android中的自定义空视图
如果ListView适配器中没有数据,我想显示刷新Button和TextView.我还希望能够向将重新加载列表的按钮添加单击侦听器.以下是我定义当前活动的方式: protected void onCr ...
- android自定义相机添加蒙板,拍照剪切
前几天,我写了一篇自定义相机加取景框的文章,这几天,我又研究了一下,进一步写了蒙板,并且拍照出来剪切只留取景框的照片. 加上对之前代码的调整.现在又记录下来 现在的效果是这样的 布局文件 <?x ...
最新文章
- C++ 和 Java,你选哪个? | 每日趣闻
- golang panic和recover 捕获异常
- ASP.NET MVC 5 實作 GridView 分頁
- 声学漫谈之七:扬声器等效电路与参数
- android onlescan 参数,Android BLE:从iOS外设广告时,在onLeScan()回调中检索服务UUID
- 【转】使用 lsof 查找打开的文件
- 将oracle优化器改为CBO,【DB.Oracle】Oracle 优化器 (RBO, CBO)
- python与线性代数 线性方程组的解集
- redis PUB/SUB(发布/订阅)
- Leetcode-5063 Last Stone Weight(最后一块石头的重量)
- PPDuck3 for Mac(pp鸭图片批量压缩工具)最新官方版免下载
- [Bzoj3233][Ahoi2013]找硬币[基础DP]
- AtCoder Grand Contest 003 D - Anticube
- 圣诞节贺卡计算机基础知识,制作圣诞节贺卡 如何制作圣诞节贺卡?圣诞节电子贺卡制作方法|电脑制作圣诞节贺卡...
- SDRAM-高手进阶,终极内存技术指南----学习笔记
- java个人常见异常
- 使用java.awt.Robot实现java版的自动点击事件
- STM32CubeMX系列教程04_STM32CubeMX各窗口界面描述
- LoRa Gateway 笔记 3.1.3 帮助程序 util_pkt_logger 进行 LoRa 空口抓包
- JZOJ1496 页
热门文章
- 32 Java中多媒体文件上传及页面回显
- 【css】星巴克交互设计
- 基于51单片机霍尔测速直流电机控制设计(含源码+原理图+论文+PCB封装)、基于STM32闭环步进电机控制系统设计(仿真,程序,说明)-转发分享
- ssm+java计算机毕业设计实验室课程管理系统t1g73(程序+lw+源码+远程部署)
- 【引流必备技术】斗音直播间弹幕监控脚本,精准采集快速截流【永久脚本+软件使用视频教程】
- Idea的安装以及相关配置
- 电气控制与PLC之间的本质区别是什么?
- 双足机器人ZMP预观控制算法通俗解释
- 到底是什么让我对学习如此上瘾?
- 西工大计算机学院聂老师,西北工业大学计算机学院导师教师师资介绍简介-马捷中...