我有一些XML.在这个XML中,相对布局中有一个按钮.相对布局占据整个屏幕.我希望按钮有1/3的屏幕宽度和高度.我怎么能这样做?
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
tools:context="com.vroy.trapper.MainMenuActivity"
android:layout_weight="2">
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="@string/menu_button_text"
android:background="@drawable/round_button"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我看了这个问题,但即使我为相对布局本身分配了一个权重,我也无法为按钮分配权重.
我正在制作一个自定义软键盘.无论如何检查它是否已在设置中启用?
在Swift中,您可以为这样的按钮创建一个函数:
button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
Run Code Online (Sandbox Code Playgroud)
但有没有办法可以做到这样的事情:
button.whenButtonIsClicked({Insert code here})
Run Code Online (Sandbox Code Playgroud)
这样我甚至没有为按钮声明一个显式函数.我知道我可以使用按钮标签,但我更愿意这样做.
前言 - 我在 SO 上看过与此类似的帖子,但答案似乎不适用。
我有一个具有以下方法的抽象类(简化):
playAnimation() {
let animator = this.createAnimator(this.animatorData)
await animator.animate()
}
Run Code Online (Sandbox Code Playgroud)
Create animator 在该抽象类中有以下定义:
abstract createAnimator(animatorData: Object): Animator
Run Code Online (Sandbox Code Playgroud)
子类可能会createAnimator
这样实现:
createAnimator(animatorData: StandardAnimatorData) {
return new RiverAnimator(animatorData.addMessage, animatorData.assetsDir)
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
createAnimator(animatorData: StandardAnimatorData) {
return new BridgeAnimator(animatorData.addMessage, animatorData.assetsDir)
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的 - 两个子类的实现createAnimator
大致相同,除了返回的类型之外Animator
。
SidenoteBridgeAnimator
和RiverAnimator
两者都实现了Animator
接口,但如果解决方案需要Animator
是一个抽象类,我可以更改它。
有没有办法进入createAnimator
抽象基类?
理想情况下,抽象类应该有一个抽象变量,它是应该返回的类的类型createAnimator
。子类只会实现该变量。然后createAnimator
使用该变量返回正确的类型Animator
。
我正在尝试编译以下代码:
https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master
到一个 apk 文件中。
为此,我创建了一个带有空活动的默认 Android 项目。之后,我将存储库中的相关java文件添加到我的项目中并进行了一些修改。我还向我的项目添加了适当的 xml/图像资源。
现在,我需要将 JNI/本机库添加到我的项目中。https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master/native/
但是,我不知道将它们放在哪里。我能找到的唯一参考是
1]如何在android studio项目中添加JNI库?但是,我的项目结构看起来与屏幕截图不同。
和
2]在 Android Studio 中创建 jni 文件夹的位置,该文件夹是旧的/过时的/缺乏详细信息。
这是我的项目结构:
Google Calender Node.js 示例需要一个名为“credentials.json”的文件:https : //developers.google.com/calendar/quickstart/nodejs
相关代码:
// Load client secrets from a local file.
fs.readFile('credentials.json', (err, content) => {
if (err) return console.log('Error loading client secret file:', err);
// Authorize a client with credentials, then call the Google Calendar API.
authorize(JSON.parse(content), listEvents);
});
function authorize(credentials, callback) {
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]);
// Check if we have previously stored a token.
fs.readFile(TOKEN_PATH, (err, token) => {
if (err) return …
Run Code Online (Sandbox Code Playgroud) 我正在将 Ant Design 与 React 一起使用。Ant Design 有一个菜单组件:https : //ant.design/components/menu/
是否可以使菜单不可折叠/展开?我阅读了文档,没有关闭折叠/折叠的参数。
我正在尝试构建 AOSP 拉丁语 IME(源代码:https : //android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master)而无需下载整个 AOSP 源代码。理想情况下,我想将该项目构建为 Gradle 项目,以便我可以轻松地将其与我现有的 Android 应用程序集成。
我已经取得了一些进展
1] 在 Android Studio 中创建一个空白项目
2]复制粘贴“java”和“java-overridable”文件夹并将“res”文件夹的内容复制粘贴到我的项目中
但是,在项目编译时,由于以下错误,打开时键盘崩溃:
无法加载本机库 jni_latinime
这个错误是有道理的,因为我没有构建和包含 C++ 本机库(在这里找到:https : //android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master/native/jni/)键盘才能发挥作用。
如何构建在上述链接中找到的本机库并将其包含在我的 Gradle 项目中?有没有办法在不下载整个 AOSP 源代码的情况下编译这些 C++ 文件?
该项目带有一个“Android.bp”文件,它似乎指定了如何编译 C++ 文件。不幸的是,我不知道如何使用 Soong 构建系统。https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/master/native/jni/Android.bp
我有一个 Typescript 应用程序。我想将 node_modules 内的依赖项捆绑到生成的包中。以下是我迄今为止根据这些帖子所做的尝试(Does rollup 将 node_modules 捆绑到bundle.js 中吗?,Does rollup 将node_modules 捆绑到bundle.js 中吗?)。
这是我的汇总配置和我尝试捆绑的简单文件:
import typescript from "@rollup/plugin-typescript";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import globals from "rollup-plugin-node-globals";
import builtins from "rollup-plugin-node-builtins";
export default {
input: "src/test.ts",
output: {
dir: "dist/",
format: "iife",
},
plugins: [
resolve({jsnext: true}),
commonjs({ include: ["src/test.ts", "node_modules/**"] }),
// I need to polyfill some node stuff
globals(),
builtins(),
typescript({ noEmitOnError: false, outDir: "dist/" }),
],
};
Run Code Online (Sandbox Code Playgroud)
文件:
import …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
VideoView videoView = (VideoView)findViewById(R.id.instructionsvideo);
assert videoView != null;
videoView.setVideoPath("android.resource://" + getPackageName() + R.raw.testnatureclip);
videoView.start();
Run Code Online (Sandbox Code Playgroud)
“testnatureclip”位于原始文件夹中:
出于某种原因,在我构建项目后,文件变为红色。
这是我得到的错误:
com.roymunson.vroy.copypastakeyboard W/MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No package found for authority: android.resource://com.roymunson.vroy.copypastakeyboard2131165184
mp4应该是H.264格式编码的,不知道我用的在线编码服务有没有用。
此外,如果这很重要,视频视图与文件的尺寸不同。
问题是什么?文件路径不正确,还是我在初始化视频视图时缺少某些元素?
更新一:
使用 User8 的解决方案,我收到以下错误:
roymunson.vroy.copypastakeyboard W/MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No content provider: /2131165184
10-01 17:36:20.912 28156-28156/com.roymunson.vroy.copypastakeyboard W/VideoView: Unable to open content: /2131165184
java.io.IOException: setDataSource failed.
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1100)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1074)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1028)
at android.widget.VideoView.openVideo(VideoView.java:346)
at …
Run Code Online (Sandbox Code Playgroud) android ×5
typescript ×2
abstract ×1
android-ndk ×1
antd ×1
button ×1
class ×1
closures ×1
google-api ×1
gradle ×1
java ×1
javascript ×1
mp4 ×1
node.js ×1
reactjs ×1
rollupjs ×1
swift ×1
uibutton ×1
xml ×1