- 如果你经常使用Canvas的draw***方法去绘制一些图像图形,绘制的坐标是从Canvas左上角开始计算的,如果想要把一个图像放到某个位置,直接drawBitmap传递图片左上角的坐标就行了。那drawText就不一样,如果你传递进去字符串,会发现文字的位置和你指定的不一样。 Android的文档也没有仔细说,打开源码一看,又跑到native代码里去执行了。 ... 如果你经常使用Canvas的draw***方法去绘制一些图像图形,绘制的坐标是从Canvas左上角开始计算的,如果想要把一个图像放到某个位置,直接drawBitmap传递图片左上角的坐标就行了。那drawText就不一样,如果你传递进去字符串,会发现文字的位置和你指定的不一样。 Android的文档也没有仔细说,打开源码一看,又跑到native代码里去执行了。 ...
- 在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 android:screenOrientation="landscape"是限制此页面横屏显示, android:screenOrientation="portrait"是限制此页面数竖... 在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 android:screenOrientation="landscape"是限制此页面横屏显示, android:screenOrientation="portrait"是限制此页面数竖...
- 1 问题 点击EditText的时候,键盘挡住了,不好输入内容 2 解决办法 在AndroidManifest.xml相应的activity里面添加 android:windowSoftInputMode="adjustPan... 1 问题 点击EditText的时候,键盘挡住了,不好输入内容 2 解决办法 在AndroidManifest.xml相应的activity里面添加 android:windowSoftInputMode="adjustPan...
- 1. SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中... 1. SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中...
- 之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用。 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextCompat.checkSelfPermission() 检查应用是否拥有该权限,被授权返回值为PERMISSION_GRANTED,否则返回PERM... 之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用。 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextCompat.checkSelfPermission() 检查应用是否拥有该权限,被授权返回值为PERMISSION_GRANTED,否则返回PERM...
- import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.text.TextUtils; import... import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.text.TextUtils; import...
- 1、上代码 activity_main.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_... 1、上代码 activity_main.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_...
- Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅... Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅...
- 使用cmd命令查看logcat 使用adb logcat命令可查看android系统和应用的log adb logcat //显示全部日志 adb logcat > c:\test.log //将日志输出保存到文件test.log logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标... 使用cmd命令查看logcat 使用adb logcat命令可查看android系统和应用的log adb logcat //显示全部日志 adb logcat > c:\test.log //将日志输出保存到文件test.log logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标...
- 1 问题 android签名除了我们用android studio build->generate Signed Apks ... 我们还可以自己用build.gradle构建,容易忘记还是记录下来 2 配置如下 1) build.gradle文件如下 android { ... signingConfigs ... 1 问题 android签名除了我们用android studio build->generate Signed Apks ... 我们还可以自己用build.gradle构建,容易忘记还是记录下来 2 配置如下 1) build.gradle文件如下 android { ... signingConfigs ...
- FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity 这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开... FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity 这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开...
- 对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法。根据音乐播放器的特性使用Context.startService()调用在合适不过了。 publi... 对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法。根据音乐播放器的特性使用Context.startService()调用在合适不过了。 publi...
- 今天用handler.post(Runnable);的时候出现了android.os.NetworkOnMainThreadException Runnable里面使用的访问网络请求,网络请求是不可以放在主线程里面的,所以出现了这个问题 因为我想执行 handler.post(runnable);Runnable runnable = new Runnable(... 今天用handler.post(Runnable);的时候出现了android.os.NetworkOnMainThreadException Runnable里面使用的访问网络请求,网络请求是不可以放在主线程里面的,所以出现了这个问题 因为我想执行 handler.post(runnable);Runnable runnable = new Runnable(...
- 1 问题 给控件添加水纹波效果,点击起来像点中了,不然效果太粗糙了,没反应。 2 实现 给控件添加如下属性 android:background="?android:attr/selectableItemBac... 1 问题 给控件添加水纹波效果,点击起来像点中了,不然效果太粗糙了,没反应。 2 实现 给控件添加如下属性 android:background="?android:attr/selectableItemBac...
- 1、问题 我们要在一个类里面变量或者函数变化需要改变另外一个类里面的东西,这个时候java里面除了接口回调之外,我们还可以用注册Handler来实现 2、代码实现 1、MainActivity.java文件 package com.example.handlercallback; import andro... 1、问题 我们要在一个类里面变量或者函数变化需要改变另外一个类里面的东西,这个时候java里面除了接口回调之外,我们还可以用注册Handler来实现 2、代码实现 1、MainActivity.java文件 package com.example.handlercallback; import andro...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签