Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by import androidx.annotation.Nullable
Creating a React-Native library using New Architecture (JSI, C++)
In this article I would like to look at the creation of a React-Native C++ Turbo Module for iOS and Android from scratch. As a basis, I took the existing react-native-fs library and tried to completely rewrite it with a C++ interface, as far as possible. I'll try to cover basic examples from the documentation, as well as non-obvious things (like working with platform-dependent code, JNI, threads).
Android Native Bridging in React Native
React Native allows you to write native code in Java and access it from JavaScript. This can be particularly useful when you need to access native functionality that isn’t available out of the box in React Native. Key Concepts Bridging: Allows JavaScript and native code to communicate. Native Modules: Java classes that are exposed to JavaScript. Native UI Components: Native views that can be used in React Native’s JavaScript code. Events: Mechanism to send data from native code to JavaScript.
Android 使用 GeckoView 并实现 js 交互、权限交互
参考文档: geckoview版本 官方示例代码1 官方示例代码2 参考了两位大神的博客和demo: GeckoView js交互实现 geckoview-jsdemo maven { url "https://maven.mozilla.org/maven2/" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } implementation 'org.mozilla.geckoview:geckoview-arm64-v8a:111.0.20230309232128' 控件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"...
安卓:TabLayout+ViewPager2+Fragment使用(java)_tablayout viewpager2 fragment-CSDN博客
目录 1. TabLayout用于左右滑动的标签:如下例图,左图推荐标签向左滑动后切换到母婴标签的内容 2. ViewPager2和Fragment实现每个标签对应的内容,每个fragment相当于一个标签和标签页。如推荐标签里的各种物品售卖的页面。 viewpager2 内部使用recycleview加LinearLayoutManager实现竖直滚动。而Fragment是为了解决Android APP运行的设备大小不一而提出来的,我们可以把Fragment当成Activity界面的一个组成部分,一个Activity中可以包含很多Fragment。 Fragment拥有自己的生命周期,可接收、处理用户的事件。 Activity中可以动态的添加、替换和移除某个Fragment 二、实现例图(仅添加推荐、百货、食品三个标签并且仅实现推荐标签页) 1. 创建ShopActivity 2.
Android 图片裁剪并批量上传视频图片到阿里云OSS
添加依赖: implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' implementation 'com.soundcloud.android:android-crop:1.0.1@aar' //裁剪包,高版本调用手机裁剪功能不行,调用这个包 //glide implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' //阿里云oss上传 // implementation 'com.aliyun.dpa:oss-android-sdk:+' implementation 'com.aliyun.dpa:oss-android-sdk:2.9.13' implementation 'commons-codec:commons-codec:1.4' //裁剪控件 // api...
Android进阶之路 - TextView文本渐变
那天做需求的时候,遇到一个小功能,建立在前人栽树,后人乘凉的情况下,仅用片刻就写完了;说来惭愧,我以前并未写过文本渐变的需求,脑中也仅有一个shape渐变带来的大概思路,回头来看想着学习一下这款自定义控件的内部实现,故记录于此 很多时候通过阅读原作者源码,总能为我们带来一些思考,一些成长 Tip:为表尊重,源码中的注释声明并未做任何修改,仅记录自身学习中的思考、想法 可以先看看效果是不是你所需要的,以免浪费开发时间… 如有需要可直接 下载Demo 需求效果 渐变背景 渐变文本 实现效果 本文只针对item样式中的 右上角的双重渐变(渐变背景、渐变文本)实现 如果让你实现右上角的标签,你考虑了哪些实现方式? Tip:右上角标签仅可能有一个,只是样式、描述不同 单标签固定样式:产品要求不严格的话,直接让设计切图!(简单便捷) 多标签固定样式:产品要求不严格的话,当样式标签固定在 2-5个之间,可以让设计切图,显示逻辑处理!(简单便捷) 多标签不固定样式:例如内部可能字体可能是精选、常态、盈利等等,当这种场景被不确定占据时,只能通过代码来进行适配...
android 关于TabLayout联动ViewPager2 实现底部导航栏
最近在心血来潮想写在app 不过我关于android可以说是0基础 在写底部导航栏的时候去问了大佬才知道TabLayout和ViewPager 花了两天才看懂... 这里只是简单介绍因为我不准备专门做安卓软件所以在学的途中很多地方没有认真记 介绍 本篇文章使用的代码是Java 这里官方是有将两个进行联动的方法的 当然如果不用也可以做 只不过应该没人会这样写...
Android---打开相机拍照_别偷我的猪_09的博客-CSDN博客
简单实现打开系统系统相机拍一张图片并显示在UI上,适用与个人主页头像的切换。 1. 添加权限。AndroidManifest.xml里添加使用相机的权限。 <uses-permission android:name="android.permission.CAMERA"/> 2.
Android Studio的笔记--aidl实现和调用
新建aidl实现工程 新建一个工程。工程名testaidl。包名com.lxh.testaidl。修改配置文件 a 修改sdk配置,修改version,修改生成apk命名,修改编译混淆配置,增加系统签名 文件位置:\testaidl\app 文件名:build.gradle plugins { id 'com.android.application' } android { compileSdkVersion 30 buildToolsVersion "30.0.2" defaultConfig { applicationId "com.lxh.testaidl" minSdkVersion 28 targetSdkVersion 30 versionCode 1 def date = new Date().format("yyyyMMddHHmm" , TimeZone.getTimeZone("GMT+08")) versionName "testaidl-V1.0-"+date testInstrumentationRunner...
Android 自定义View之圆形进度条
很多场景下都用到这种进度条,有的还带动画效果, 今天我也来写一个。 写之前先拆解下它的组成: 底层圆形 上层弧形 中间文字 那我们要做的就是: 绘制底层圆形; 在同位置绘制上层弧形,但颜色不同; 在中心点绘制文本,显示进度。 按照这个目标,学习下自定义View的流程。 新建一个类,继承 View ,重写构造函数,如, package com.test.luodemo.customerview; import android.content.Context; import android.util.AttributeSet; import android.view.View; import androidx.annotation.Nullable; public class CircleProgressBar extends View { public CircleProgressBar(Context context) { super(context); } public CircleProgressBar(Context context, @Nullable...
Android Studio实现读取本地相册文件并展示
原文链接 效果 activity_main.xml 需要有一个按钮和image来展示图片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择图片" android:layout_gravity="center" android:textColor="@color/white" /> <ImageView android:id="@+id/iv_image"...
Android Studio实现解析HTML获取图片URL将图片保存到本地
效果 项目本来是要做成图片保存到手机然后读取数据后瀑布流展示,但是有问题,目前只能做到保存到手机 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="horizontal"> <Button android:id="@+id/button" android:layout_width="match_parent"...
【Android】使用 CameraX 实现基础录像功能
目录 在 build.gradle 中添加 CameraX 的相关依赖 // *** Camera 相关依赖 *** def cameraxVersion = "1.1.0-alpha05"; implementation "androidx.camera:camera-core:${cameraxVersion}" implementation "androidx.camera:camera-camera2:${cameraxVersion}" implementation "androidx.camera:camera-lifecycle:${cameraxVersion}" implementation 'androidx.camera:camera-view:1.0.0-alpha25' // *********************** 在 AndroidManifest.xml 文件中注册相机权限 <!-- 这个权限声明意味着此 Android 应用程序需要设备具有摄像头功能才能正常运行, 并且如果设备没有摄像头,则应用程序将无法在该设备上安装或运行。...
Android:主题切换_android 主题切换_shawn·xiao的博客-CSDN博客
正在开发的应用做了一版新UI,原打算将新版UI按项目名做成资源包,再在build.gradle里productFlavors{ }多渠道打包实现 但被告知新旧两个项目共用一个分支,那就做成两个主题(Theme1/Theme2)来适配了 如果只是变更UI,做成多主题来适配不同项目也是比较合适的方式 从服务器下载或提前放置不同主题资源包到设备指定目录,在代码里引用主题资源 定义不同的<style>、使用Android的setTheme()机制设置不同主题 将主题资源做成APK,使用远程Context的方式访问Apk中的主题资源。 第1、第3种方法的实现原理,是用户从服务器下载 或 提前放置主题资源,然后在代码中进行引用 第2种方法是接下来先要讲的, 也是这次新旧UI开发适配完成的方式。 第2种讲完后,也会同步介绍第1、第3种方法 除了这三种常用的方式外,还有一种通过"修改framework中Resources类获取资源的流程,将资源重定向到主题包中"的实现方式,这种方式暂不做讨论...
Android Java代码与JNI交互 JNI方法Java类字段 (六)
🔥 Android Studio 版本 🔥 🔥 Java 基础类型数据对应 Native层的字母 🔥 通过 jni 查找java某个类中相应字段对应的数据类型 , 需要使用到 jni 中的 GetFieldID() 函数 jfieldID GetFieldID(jclass clazz, const char* name, const char* sig) { return functions->GetFieldID(this, clazz, name, sig); } * |Java |JNI | * |boolean |Z | * |byte |B | * |char |C | * |short |S | * |int |I | * |long |J | * |float |F | * |double |D | 🔥 Java 引用类型数据对应 Native层字符串 🔥 * |Java |JNI | * |String |Ljava/lang/String; | * |Class |Ljava/lang/Class; | * |Throwable...
移动应用开发 实验报告5 Sqlite数据库
一、实验要求 通过线性布局和相对布局来搭建Activity界面,在MainActivity中编写逻辑代码,运行程序,输入两条联系人信息分别点击“添加”“查询”“修改”“删除”按钮。实现联系人信息的添加、查询、修改以及删除功能。操作成功后,通过弹出的消息内容显示对应操作。下图界面仅供参考,可根据功能另外设计界面。 二、实验结果展示 三、代码展示 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg" android:padding="16dp" android:orientation="vertical">...
搭建直播平台,自定义VIew实现设置防截屏、添加水印_ITPUB博客
搭建直播平台,自定义VIew实现设置防截屏、添加水印 1.activity代码:MarkViewActivity package com.zdmtech.backgroundtextdemo; import android.os.Bundle; import android.view.WindowManager; import android.widget.RelativeLayout; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; import java.util.List; /** * 设置防截屏、添加水印 * */ public class MarkViewActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) {...
Android--Sqlite数据库--实现联系人信息的添加、查询、修改以及删除功能_轨迹_6的博客-CSDN博客
掌握常用布局和基本控件的使用方法 掌握界面图像显示的使用方法 掌握SQLite数据库的创建和基本操作方法 通过线性布局和相对布局来搭建Activity界面,在MainActivity中编写逻辑代码,运行程序,输入两条联系人信息分别点击“添加”“查询”“修改”“删除”按钮。实现联系人信息的添加、查询、修改以及删除功能。操作成功后,通过弹出的消息内容显示对应操作。下图界面仅供参考,可根据功能另外设计界面。 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg"> <LinearLayout...
Android Studio实现Mysql(5.7)数据库增删改查(上)--用户登录功能实现
前言:如果android studio安装和第一次跑helloworld有什么问题可以参考:(34条消息) Android Studio踩的那些坑(gradle build、unable to find tasks to···等等)_TidesWise的博客-CSDN博客 目录 1、在Android Studio中新建项目My Application; 2、在AndroidManifest.xml文件中加入以下两句代码,授予网络权限: <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 3、win+R输入cmd输入命令ipconfig,查看本机IPV4地址,记住它;注意IPV4地址可能会有变化! 4、打开数据库管理工具,这里以Navicat为例,连接本机localhost mysql数据库,查看相应用户: 5、新建用户tides,主机输入%:...
Android开发 登录注册设计
用Android Studio 简单的实现登录注册 目录 一、登录界面 activity_login.xml 布局代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:background="@drawable/bgqq" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/imgfile"...
android : 底部导航栏的实现(使用ViewPager和BottomNavigationView)
本案例中需要用的控件ViewPager和BottomNavigationView ViewPager:主要是页面的切换 Fragment:碎片(也就是每个页面的内容) BottomNavigationView:底部导航栏 非常简单,主要就是一个Viewpager和BottomNavigationView 先来说一下思路:BottomNavigationView底部导航栏 ViewPager+Fragment页面 那么我么如何设置两个控件联动(仅需要两个方法即可) ViewPager中的滑动页面监听 接口onPageSelected()方法 BottomNavigationViewr中的 底部图标切换监听 接口onNavigationItemSelected()方法 简单地说就是当我们滑动页面的时候改变底部导航栏图标id 点击底部导航栏时更改viewpager界面 activity_main.xml 注意:BottomNavigationView需要一个app:menu菜单文件(下面会作讲解) <?xml version="1.0" encoding="utf-8"?>...
学习笔记-Android studio导入OpenCV配置使用
1.下载OpenCV-android-sdk 官网下载sdk,打开opencv官网,点击Android,完成后解压 https://opencv.org/ 解压后,文件夹下有这些文件 samples Android代码工程 sdk 包含opencv的Java的接口和JNI接口等 2.新建工程 打开Android studio,选择模板,这时选择最后一项Native C++,然后进入配置界面。 这里注意你下载的Android-sdk版本来选择API 选择C++14,finish 3.环境配置 将OpenCV库作为Module导入。具体步骤为:File->New->Import Module,然后将OpenCV-android-sdk\sdk目录导入,最好顺便将模块名改成opencv+版本号。如下图,然后Next->Finish。 修改OpenCV下的gradle文件, apply plugin: 'com.android.library,并将API改为与app一致 添加依赖,菜单栏选择File->Project...
Android 底部(简单,简易)导航栏(Fragment)
首先编写activity的布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RelativeLayout android:id="@+id/tab_rg" android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/white" > <TextView...
Android权限申请库--EasyPermissions使用详解和打开相册方法_鸟儿不吃草的博客-CSDN博客
1、添加依赖 dependencies { implementation 'pub.devrel:easypermissions:3.0.0' } 2、在AndroidManifest文件中添加需要的权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 3、复写onRequestPermissionsResult方法 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults,...
Android Settings中Preference的理解以及使用
Preference 是Android App 中重要的控件之一,Settings 模块大部分都是通过 Preference 实现 Preference 可以自动显示我们上次设置的数据,Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,无需用户自己保存操作,只需要在xml中定义对应的Preference控件即可。 PreferenceActivity是一个非常有用的基类,当我们开发Android项目时避免不了选项设置,这些设置习惯用Preference来保存。Android专门为这种Activity提供了便捷的基PreferenceActivity。如果继承自Preference则不需要自己控制Preference的读写,PreferenceActivity会为我们处理一切。 PreferenceActivity与普通的Activity不同,它不是使用界面布局文件,而是使用选项设置的布局文件。选项设置布局文件以PreferenceScreen作为根元素来表示定义一个参数设置界面布局。 从Android...
Android Studio 实战演练-小猴子摘桃
activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="50dp" android:background="#008577" android:gravity="center"...
SQLite 使用(针对Android)
SQLite的注意事项: 标准的主键写法:_id。(不标准写法:id),此外,主键只能是Integer类型的。 像varchar,char等最终内部都会转变成text格式。 android里面的SQLite数据库是由底层的sqlite.c的代码来动态生成的。 官方下载地址:https://www.sqliteexpert.com/download.html 模拟器下面的db数据库查找: 3.1 SqliteOpenHelper 创建 库或表 android系统封装了一个SqliteOpenHelper抽象工具类,来对SQLite进行增删改查。 示例: 实现通过点击按钮,来创建一个数据库,并且数据库中带有表格的效果。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"...
Unity 使用aar与Android通信(基础流程)
原理概述:Unity在生成apk的时候,会把相对路径为Plugins/Android下的aar文件打入到apk里面,通过Unity自己的api,AndroidJavaClass就可以调用aar里面的代码,实现一些Android原生层的一些功能 本文内容:主要写了用aar沟通Unity的基础流程,不涉及具体的sdk等的接入,本人不是Android原生开发,所以Android的部分很多还不是很理解,所以只能提供一些基本方法,其他的只能靠大家自己去研究了 生成aar 要生成aar,大体步骤如下 AndroiStudio 编辑器里面,新建一个空工程(只是用来当出aar包的载体,后面可以看到里面很多东西是不需要的) 添加新模块 Android Library 导入Unity提供的classes.jar包(主要是为了编译通过,如果你没用用到Unity的代码,只是Unity调用java,其实可以不用) 写自己需要的功能代码,同时根据功能,调整AndroiManifest.xml以及build.gradle(主要配置一些引用等内容,不一定需要调整) 执行Gradle的assemble...
Android studio音乐播放器
(资源下载链接在文末) 实现功能:播放,暂停,下一曲,上一曲,注册,登录,更改背景图片。 首先在AndroidManifest.xml 声明server 和对SD卡中的文件进行操作的权限 <service android:name=".service.MusicService" android:enabled="true" android:exported="true" /> <!-- 对SD卡中的文件进行操作的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 实现首页的所有功能(1、显示本地所有MP3 2、显示登录状态 3、自由更改背景图) index_activity.xml <?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout xmlns:app="http://schemas.android.com/apk/res-auto"...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with import
Contact import, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack