- 博客(27)
- 资源 (55)
- 问答 (1)
- 收藏
- 关注
原创 Android 7.0以上和7.0以下获取USB,sdcard路径的方法
1 7.0以上路径获取方法 public static List getAllExternalSdcardPath(Context context) { List uDisks = new ArrayList<>(); String systemPath = Environment.getExternalStorageDirectory().getAbsolutePath(); StorageManager mStorageManager
2020-07-31 13:27:38 891 2
原创 Android 自定义ListView实现Item左右滑动删除
最近工作之中,要实现ListView左右滑动删除Item功能,在此做个记录。案例图:1.自定义ListViewimport android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.VelocityTracker;import android.view.View;import android.view.ViewConfigurati
2020-07-29 17:04:21 763 3
原创 Android 8.0发送通知
在Android8.0以后,针对Notification 通知api做了修改,新增了通知渠道(NotificationCannel)。下面就把demo的详细代码记录下:1.Application 为NotificationManager添加通知频道import android.app.Application;import com.xinrui.ndkapp.notification.NotificationChannels;public class NdkApplication extends
2020-07-27 19:44:12 851
原创 Android 区分单点触摸和多点触摸和解决单点和多点的冲突
在处理单点触摸和多点触摸的过程中,仅仅通过event.getPointCount()来区分单指和多指触摸是不完全正确的,这只能获取 手指的个数, 而通过MotionEvent.ACTION_POINTER_UP 可以来区分多指和单指,当多指触摸时,会触发这个事件案例如下:import android.app.Activity;import android.content.Intent;import android.os.Build;import android.os.Bundle;import
2020-07-24 17:50:00 953 2
原创 Android JSON解析json数据
一、什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。JSON就是一串字符串 只不过元素会使用特定的符号标注。{} 双括号表示对象[] 中括号表示数组“” 双引号内是属性或值: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)案例1:{ "translation": [ "爱" ], "basic": { "us-phonetic":
2020-07-24 15:35:54 386
原创 Android 遥控器组合键的处理
最近在做遥控器开发中,需要处理两个按键一起按时的组合键的处理,下面做个笔记1.定义组合键处理类import android.content.Context;import android.util.Log;import com.xinrui.tvsetting.common.IMultKeyTrigger;public class MyMultKeyTrigger implements IMultKeyTrigger { private static String TAG =MyMultK
2020-07-22 18:53:29 863 2
原创 Android 数据结构之 二叉树
最近抽时间看了下二叉树,下面把二叉树的相关遍历方式共享下1.定义树结构类 public class TreeNode { public TreeNode left; public TreeNode getLeft() { return left; } public void setLeft(TreeNode left) { this.left = left; } public TreeNode getRight() {
2020-07-21 15:15:43 404
原创 Android 自定义可拖拽,可放大缩小的ImageView
最近需要开发控件,需要放大缩小可随意拖拽,于是就自定义View来实现,具体如下:案例:1.自定义Viewimport android.annotation.SuppressLint;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;impor
2020-07-17 15:19:15 1119 2
原创 Android JNI异常处理
Android JNI 调用时的异常主要有如下两种:Native 代码调用 Java 层代码时发生了异常要处理Native 代码自己抛出了一个异常让 Java 层去处理可以看到异常的发生和处理基本都需要 Native 和 Java 交互,而对于 Native 自身出了异常,也就是 C/C++ 代码有问题,导致应用崩溃的又是另一回事了。Native 调用 Java 方法时的异常之前的博客中就讲述了如何从 Native 调用 Java 的方法,先准备一个有异常的方法供 Native 去调用。
2020-07-16 20:14:20 658
原创 Android 自定义转盘菜单
最近由于公司项目需要,需要开发一款转盘菜单,费了好大功夫搞出来了,下面分享下样图具体功能如下:import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v7.app.AppCompatActivity;import a
2020-07-16 18:12:04 2116 2
原创 Android JNI常用api
一、Interface Function Table(接口函数表)每个函数都可以通过JNIEnv参数访问,JNIEnv类型是指向一个存放所有JNI接口指针的指针,其定义如下:typedef const struct JNINativeInterface *JNIEnv;虚拟机初始化函数表,如下面代码所示,前三个条目是为了将来和COM兼容而保留的。另外,我们在函数表的开头附近保留了一些额外的NULL条目,例如,可以在FindClass之后添加未来与类相关的JNI操作,而不是在表的末尾。请注意,函数表可以
2020-07-14 09:18:36 415
原创 Android JNI 数据类型
Java层和Native层都有自己的数据类型,在JNI中,这些数据类型又可以分为基本数据类型和引用数据类型,其中,基本数据类型是可以直接相互转换的,而引用数据类型则需要进行一定的装换才可以。为了方便对两个世界的基本数据类型进行相互装换,JNI为我们提供了一系列的方法来帮助我们完成这些工作。JNI数据类型1 基本数据类型Java类型 JNI类型 类型签名boolean jboolean Zbyte jbyte Bchar jchar Cshor
2020-07-13 20:27:38 800
原创 Android JNI结构体和指针数组的使用以及调用Java类的方法和属性
1.结构体的使用struct Work{ char name[10]; int age;}darren = {"Darren",23},jack;//默认给结构体赋值struct Worker{ char name[10]; int age; struct Work work;};extern "C" JNIEXPORT void JNICALLJava_com_xinrui_ndkapp_MainActivity_usestruct(JNIEnv *en
2020-07-13 15:48:49 459
原创 Android JNI读取本地文件和读取文件并且写入其他文件
JNI 对文件读写操作:1.读取本地文件extern "C" JNIEXPORT void JNICALLJava_com_xinrui_ndkapp_MainActivity_readFile(JNIEnv *env, jobject instance,jstring str) { const char* path=env->GetStringUTFChars(str,JNI_FALSE); FILE* file = fopen(path,"r"); if(file==
2020-07-13 09:51:53 4672
原创 Android JNI创建字符串数组和jni释放资源
1.创建字符串数组extern "C" JNIEXPORT jobjectArray JNICALLJava_com_xinrui_ndkapp_MainActivity_createStringArray(JNIEnv *env, jobject instance){ jclass cls = env->FindClass("java/lang/String"); jobjectArray str_array = env->NewObjectArray(5,cls,0);
2020-07-10 18:18:26 1253
原创 Android JNI文件操作常用函数
在Android开发中,对于JNI读写文件也是常用的功能,jni操作常用函数讲解就来简单分析方便更快了解jni读写文件功能。
2020-07-10 16:21:51 1879
原创 Android JNI 删除文件和遍历文件夹并删除文件夹下的文件
对操作文件也是在开发中常用的事情,下面对删除文件和文件夹下的文件做个笔记1.删除文件extern "C" JNIEXPORT int JNICALLJava_com_xinrui_ndkapp_MainActivity_deletefile(JNIEnv *env, jobject instance, jstring str) { const char *str_path = env->GetStringUTFChars(str, JNI_FALSE);//本地代码绝不能修改字符串的内容
2020-07-10 15:24:43 933
原创 Android JNI string.h 常用函数详解
JNI 开发中 string.h的一些常用函数做个总结:strcpychar *strcpy(char *destin, char *source);功能:将source指向的字符串拷到destin。int main() { char dest[5]; char *src="123456"; strcpy(dest, src); printf("dest= %s, %s, %s", dest, dest+4, dest+5); return 0; }
2020-07-10 14:03:31 797
原创 Android 多组RadioGroup的选项互斥
在开发中,也会遇到两组RadioGroup选择项互斥的需求,其实也就是清除另外一组的选项 mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checke
2020-07-09 18:02:26 711 2
原创 Android 自定义ViewPager(仿蘑菇街欢迎页)
最近研发需求,需要一款和蘑菇街样式的欢迎页,所以就自定义ViewPager来实现需求:效果图:具体功能如下:1.MainActivity代码public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requ
2020-07-08 11:00:43 295 2
原创 Android View基本概念和生命周期
本篇掌握内容:什么是View?View 坐标的基本概念View的生命周期如何自定义View1.什么是View?android.app.View 就是手机的UI,View 负责绘制UI,处理事件(evnet),Android 利用 View 打造出所 Widgets,利用 Widget 可打造出互动式的使用者介面,每个View 负责一定区域的绘制。一张图理解常用控件层级关系2.View 坐标的基本概念View的宽高是有top、left、right、bottom参数决定的 而X,Y和trans
2020-07-08 09:53:15 851
原创 Android 十六进制颜色值转换成int类型值
1.十六进制值:#00CCFFint textcolor = Color.parseColor("#00CCFF")返回int数值;text.setTextColor(textcolor);2.根据id获取十六进制的值public String getColorHex(int colorId, Context context){ StringBuffer stringbuffer = new StringBuffer(); int color = context.g
2020-07-05 16:19:03 2059
原创 Android 自定义可编辑可任意全屏拖动的EditText
前言在开发中,有一种需求,需要一种EditText可拖动并且可编辑,在失去焦点时,变成TextView,获取焦点时,可编辑,查阅好多资料,最终完成,由于开发时间比较紧,只做个笔记效果图:1.自定义Viewimport android.content.Context;import android.graphics.Paint;import android.text.Editable;import android.text.TextPaint;import android.text.TextWa
2020-07-03 16:47:47 1652 4
原创 Android 自定义View实现直播点赞特效
由于开发的需要,需要开发类似直播点赞特效的需求,于是自定义View来实现这种效果案例图:自定义Viewimport android.animation.Animator;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.animation.TypeEvaluator;import android.animation.ValueAnimator;import
2020-07-02 14:12:20 456 2
原创 Android 复制和删除文件夹和文件
在开发中,对于文件和文件夹的复制 删除操作,也是常用的,下面做个记录以便备用 /** * 复制文件 * * @param fromFile 要复制的文件目录 * @param toFile 要粘贴的文件目录 * @return 是否复制成功 */ public boolean copy(String fromFile, String toFile) { //要复制的文件目录 File[] currentF
2020-07-02 09:40:54 544 2
原创 Android JNI用bitmap来实现Imageview的上下翻转和左右镜像
Android NDK功能很强大,今天就来学习下jni用bitmap实现Imageview的上下翻转和左右镜像效果图:在 Android 通过 JNI 去调用 Bitmap,通过 CMake 去编 so 动态链接库的话,需要添加 jnigraphics 图像库。target_link_libraries( # Specifies the target library. native-operation jni
2020-07-01 09:28:55 1032
原创 Android Jni用bitmap形式实现Image图片的黑白滤镜
在Android的开发中,我们有时会对性能要求比较高。Android通过NDK为我们提供了c++开发的方式。我们可以通过c++完成核心的耗时的计算然后通过JNI的方式将处理完成的数据传给Java层。今天,我们就用jni的方式对Bitmap进行处理,来实践NDK开发的方式。开发一个图片滤镜。效果图:1.CMakeLists.txt 配置target_link_libraries( # Specifies the target library. nativ
2020-07-01 09:13:15 534
android Accessibility无障碍服务实现获取系统全局任何控件的名称和坐标信息
2024-03-23
8.1 9.0 10.0安装app时抛出异常解决方案.rar
2021-09-07
android 9.0 10.0Launcher3 Hotseat 添加apps button.txt
2021-08-08
android 9.0 10.0添加负一屏(左一屏)功能left_screen.rar
2021-08-06
android 自定义九宫格图案解锁DrawPwd.rar
2021-08-05
关于开通单篇收费资源的建议
2021-07-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人