小编Mar*_*say的帖子

使用SWIG生成Java接口

我正在使用SWIG制作一个C++库的Java包装器(关于Json(de)序列化)以在Android上使用它.我在C++中定义了一个抽象类,表示可以(反)序列化的对象:

class IJsonSerializable {
public:
    virtual void serialize(Value &root) = 0; 
    virtual void deserialize(Value &root) = 0; 
};
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试从这个类生成一个Java接口.这是我的SWIG界面:

%module JsonSerializable
%{
#include "JsonSerializable.hpp"
%}

%import "JsonValue.i"

class IJsonSerializable {
public:
    virtual void serialize(Value &root) = 0; 
    virtual void deserialize(Value &root) = 0;
};
Run Code Online (Sandbox Code Playgroud)

但是生成的Java代码(显然,因为我无法找到如何告诉SWIG这是一个接口)一个简单的类,有两个方法和一个默认的构造函数/析构函数:

public class IJsonSerializable {
  private long swigCPtr;
  protected boolean swigCMemOwn;

  public IJsonSerializable(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }  

  public static long getCPtr(IJsonSerializable obj) {
    return (obj == null) ? 0 …
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface swig

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

RecyclerView StaggeredGridLayoutManager重新排序问题

我试图在RecyclerView一个StaggeredGridLayoutManager带有两列的a中显示三个(至少是我遇到问题的情况).第一项跨越两行.这是它的样子:

正确的初始行为

现在,我将项目"项目2"移到顶部.这是我在适配器中调用的代码(这是我编写的一个示例,用于演示我在一个更复杂的项目中遇到的问题):

private int findById(int id) {
    for (int i = 0; i < items.size(); ++i) {
        if (items.get(i).title.equals("Item " + id)) {
            return i;
        }
    }

    return -1;
}

// Moving the item "Item 2" with id = 2 and position = 0
public void moveItem(int id, int position) {
    final int idx = findById(id);
    final Item item = items.get(idx);

    if (position != idx) {
        items.remove(idx);
        items.add(position, item);
        notifyItemMoved(idx, position);
        //notifyDataSetChanged();
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,阵列很好:[Item …

android recycler-adapter android-recyclerview

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

Android透明文字

我需要TextView在渐变背景上显示.在TextView本身应该有一个纯白色的背景,文字应该是透明的.

但是,为文本设置透明色(#00000000)不起作用:它只显示白色矩形,背景不会显示文本的位置(文本与TextView背景颜色相同).

如何在我的背景颜色上显示透明文字TextView

transparency android textview

10
推荐指数
1
解决办法
8346
查看次数

将多个 Kotlin 流合并到一个列表中,无需等待第一个值

我有一个List<Flow<T>>,想生成一个Flow<List<T>>. 这几乎是什么combine- 除了组合等待每个都Flow发出初始值,这不是我想要的。以这段代码为例:

val a = flow {
  repeat(3) {
    emit("a$it")
    delay(100)
  }
}
val b = flow {
  repeat(3) {
    delay(150)
    emit("b$it")
  }
}
val c = flow {
  delay(400)
  emit("c")
}
val flows = listOf(a, b, c)
runBlocking {
  combine(flows) {
    it.toList()
  }.collect { println(it) }
}
Run Code Online (Sandbox Code Playgroud)

使用combine(因此按原样),这是输出:

[a2, b1, c]
[a2, b2, c]
Run Code Online (Sandbox Code Playgroud)

而我也对所有中间步骤感兴趣。这就是我想要从这三个流程中得到的:

[]
[a0]
[a1]
[a1, b0]
[a2, b0]
[a2, b1]
[a2, b1, c]
[a2, …
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines kotlin-flow

9
推荐指数
1
解决办法
6900
查看次数

CursorAdapter动态排序

我目前用的是CursorAdaptera Loader.加载的数据Loader包含一个位置.我想从最近到最远的地方订购我的物品.我已经计算了显示它的距离,我现在需要找到一种动态排序数据的方法.

我可能CursorLoader每次修改数据时都会修改排序,但是一次又一次地执行相同的SQL查询只是为了改变顺序看起来对我来说太过分了......

有没有办法动态排序数据CursorAdapter

sorting android android-location android-listview android-cursoradapter

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

Android - 连接两个视频

我正在尝试在Android上连接两个视频.我已经在使用ffmpeg来满足其他需求,但我使用的是halfninja的一个,只有0.9.0.9版本不允许以下方式执行此操作:

// filter_complex isn't recognized
vk.run(new String[] {
        "ffmpeg",
        "-i",
        inputFile1,
        "-i",
        inputFile2,
        "-filter_complex",
        "'[0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a]'",
        "-map",
        "'[v]'",
        "-map",
        "'[a]'",
        outputFile
});

// Or, after converting the two videos to ts, trying to merge them: concat:file1.ts|file2.ts: No such file or directory
vk.run(new String[] {
        "ffmpeg",
        "-i",
        "'concat:" + ts1 + "|" + ts2 + "'",
        "-vcodec",
        "copy",
        "-acodec",
        "copy",
        "-absf",
        "aac_adtstoasc",
        output
});
Run Code Online (Sandbox Code Playgroud)

我尝试的第三件事是使用这里解释的concat demuxer ,ffmpeg 0.9也无法识别.

有没有办法在Android上用ffmpeg 0.9(或其他库)连接两个视频?

video java-native-interface android ffmpeg android-ndk

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

黑莓10级联 - 检查互联网连接

我正在使用Web服务开发BB-10应用程序.在这里我想在get和post方法中解析JSON,我想检查Internet的可用性.

我怎样才能做到这一点?

json blackberry-10 blackberry-cascades

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

如何使用android ndk r9b编译Android的FFMPEG

我想设计一个可以通过FFMPEG命令播放和编辑视频的Android应用程序.但我不知道如何在Android上使用FFMPEG.我尝试过从Google搜索过的很多方法,但它们太老了,无法实现.现在,最新版本的FFMPEG是2.1.1,而Android-NDK的版本是r9b.我的操作系统是Linux mint 15.如何在我的操作系统上使用eclipse IDE来实现一个拥有FFMPEG最新解码器和编码器的Android应用程序?

android ffmpeg android-ndk

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

动画矢量Drawable甚至在API 22设备上使用compat库

我使用路径变形编写了一个可绘制的动画矢量(仅在API 21及更高版本上可用).我有一个回退动画使用简单的旋转API 21以下.我正在使用动画矢量drawable支持库(com.android.support:animated-vector-drawable:25.3.1).

这是我开始动画的方式:

mBinding.switchIcon.setImageResource(R.drawable.ic_animated_vertical_arrow_down_to_up_32dp);

final Drawable animation = mBinding.switchIcon.getDrawable();
if (animation instanceof Animatable) {
    ((Animatable) animation).start();
}
Run Code Online (Sandbox Code Playgroud)

这适用于API 19和24,但不适用于API 22和23(我没有要测试的API 21设备).

API 19案例是合乎逻辑的:动画很简单,完全由支持库处理,它可以工作.大.

我希望任何API 21及更高版本的设备都能选择内置的矢量可绘制实现.但是,在调试时,我可以看到它animation实际上是一个实例AnimatedVectorDrawableCompat:因此,它不支持路径变形,并且动画不起作用.

那为什么它适用于API 24?嗯,animation是一个实例AnimatedVectorDrawable.因此,路径变形工作正常.

所以我的问题是:为什么API 21-23设备没有采用内置实现,并且依赖于支持库,而API 24设备确实接收了它?


  • 作为旁注,强制设备选择内置实现显然有效:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        AnimatedVectorDrawable drawable = (AnimatedVectorDrawable) getDrawable(R.drawable.ic_animated_vertical_arrow_down_to_up_32dp);
        mBinding.switchIcon.setImageDrawable(drawable);
    } else {
        mBinding.switchIcon.setImageResource(R.drawable.ic_animated_vertical_arrow_down_to_up_32dp);
    }
    
    final Drawable animation = mBinding.switchIcon.getDrawable();
    if (animation instanceof Animatable) {
        ((Animatable) animation).start();
    }
    Run Code Online (Sandbox Code Playgroud)
  • 我还在Google错误跟踪器上找到了这个(可能)相关问题:https …

java animation android android-vectordrawable

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

在BB10应用程序开发的cpp文件中包含<QNetworkAccessManager>,<QNetworkReply>时出错

我目前正在开发BB10应用程序开发并尝试一些HTTP连接演示应用程序.

但是在cpp文件中给出了一个?包含声明的#include <QNetworkAccessManager>说法Unresolved Inclusion : <QNetworkAccessManager>.

有人请帮助我.

提前致谢.

c++ qt qnetworkaccessmanager blackberry-10

3
推荐指数
1
解决办法
7355
查看次数

回调VideoView进度

我正在寻找一种VideoView在播放时获得回叫的方法,表明视频的进展.像这里描述的东西,但是对于VideoView.每隔固定时间轮询当前进度似乎是一个糟糕的解决方案......

我错过了是否有任何听众存在?

android listener android-videoview

3
推荐指数
1
解决办法
3402
查看次数

忽略 webview 中的 ssl 证书请求

我制作了涉及aspx 页面的小应用程序,我尝试打开它并抛出我的 webview,但我得到了空白屏幕。

我尝试用 Chrome 浏览器打开它,它给了我所需的证书

在此输入图像描述

我的代码非常简单我添加了一些文档来解释发生了什么

@SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        Bundle bundle = getIntent().getExtras();
        if(bundle != null){
            urlSite = bundle.getString("passed_url");
        }
     _toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(_toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    _toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
    webView = (WebView) findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();

    // enable javascript
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);


    webView.setWebChromeClient(new WebChromeClient());
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            new ParseURl().execute(new …
Run Code Online (Sandbox Code Playgroud)

android webview

-1
推荐指数
1
解决办法
6860
查看次数