小编Roy*_*son的帖子

Android在相对布局中制作按钮宽度和高度的1/3

我有一些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)

我看了这个问题,但即使我为相对布局本身分配了一个权重,我也无法为按钮分配权重.

xml android android-button android-relativelayout

7
推荐指数
1
解决办法
8951
查看次数

如何检查我的自定义键盘是否已在设置中启用

我正在制作一个自定义软键盘.无论如何检查它是否已在设置中启用?

android android-softkeyboard

7
推荐指数
2
解决办法
927
查看次数

Swift以编程方式为带按钮的按钮创建函数

在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)

这样我甚至没有为按钮声明一个显式函数.我知道我可以使用按钮标签,但我更愿意这样做.

closures button uibutton swift

7
推荐指数
1
解决办法
7139
查看次数

Typescript - 将类类型存储为变量,以便从中创建对象或其他等效功能

前言 - 我在 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

SidenoteBridgeAnimatorRiverAnimator两者都实现了Animator接口,但如果解决方案需要Animator是一个抽象类,我可以更改它。

有没有办法进入createAnimator抽象基类?

理想情况下,抽象类应该有一个抽象变量,它是应该返回的类的类型createAnimator。子类只会实现该变量。然后createAnimator使用该变量返回正确的类型Animator

abstract-class class factory-method abstract typescript

7
推荐指数
2
解决办法
1万
查看次数

Android Studio 项目中 JNI/原生库的放置位置

我正在尝试编译以下代码:

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 文件夹的位置,该文​​件夹是旧的/过时的/缺乏详细信息。

这是我的项目结构:

项目_结构

java-native-interface android gradle android-ndk

7
推荐指数
1
解决办法
7187
查看次数

在哪里可以找到 Google API 客户端的凭据.json?

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)

google-calendar-api google-api node.js google-api-client

7
推荐指数
1
解决办法
1万
查看次数

Ant Design - 使菜单不可折叠/不可折叠

我正在将 Ant Design 与 React 一起使用。Ant Design 有一个菜单组件:https : //ant.design/components/menu/

是否可以使菜单不可折叠/展开?我阅读了文档,没有关闭折叠/折叠的参数。

reactjs antd

6
推荐指数
2
解决办法
1622
查看次数

如何从树中构建 AOSP 拉丁语 IME?

我正在尝试构建 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

android android-source android-soong

6
推荐指数
1
解决办法
1004
查看次数

使用 Typescript 时将捆绑包 node_modules 汇总到应用程序中

我有一个 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)

javascript typescript rollupjs

6
推荐指数
1
解决办法
3465
查看次数

使用 VideoView 时获取 java.io.FileNotFoundException

我有以下代码:

   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)

java mp4 android filenotfoundexception android-videoview

5
推荐指数
1
解决办法
5774
查看次数