小编And*_*nko的帖子

带有wrap_content的RecyclerView没有很好的动画效果

当我的RecyclerView高度为wrap_content,如下所示

<android.support.v7.widget.RecyclerView
    android:id="@+id/myRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

结果如下.

在此输入图像描述

这是因为调整大小发生在动画之前.

它在https://medium.com/@elye.project/recyclerview-supported-wrap-content-not-quite-f04a942ce624#.n7xivnrdr中有更清楚的描述.

有没有办法强制它先动画然后只调整大小?

android android-animation android-recyclerview

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

如何在GNU Emacs中完成相当于Vim的Ctrl-n?

Vim的Ctrl+ N通常是这样的:我输入几个字母,点击Ctrl+ N,Vim根据我所有打开的缓冲区中的单词为我提供完成.

Emacs的解决方案不必完全相同.我主要使用它:声明变量,然后在以后的代码中使用它.但我喜欢解析源代码的轻量级方法.

emacs autocomplete

9
推荐指数
3
解决办法
3103
查看次数

如何捕获ExoPlayer的所有错误?

我为我的应用程序实现了ExoPlayer作为播放器.但是我无法找到如何捕获所有ExoPlayer错误以避免应用程序崩溃.我添加了以下监听器,但它没有捕获所有错误.

我必须使用DRM,它有时会崩溃一些问题,但我之前无法设置监听器,因为播放器是NULL.

    player = ExoPlayerFactory.newSimpleInstance(context, trackSelector, loadControl, drmSessionManager);

    player.addListener(new ExoPlayer.EventListener() {
        @Override
        public void onTimelineChanged(Timeline timeline, Object manifest) {

        }

        @Override
        public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {

        }

        @Override
        public void onLoadingChanged(boolean isLoading) {

        }

        @Override
        public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {

        }

        @Override
        public void onPlayerError(ExoPlaybackException error) {
            //Catch here, but app still crash on some errors!
        }

        @Override
        public void onPositionDiscontinuity() {

        }
    });
Run Code Online (Sandbox Code Playgroud)

错误示例:

03-22 16:38:31.401 17960-25624/com.mypackage.name E/ExoPlayerImplInternal: Renderer error.  
                                                                     com.google.android.exoplayer2.ExoPlaybackException 
                                                                         at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.shouldWaitForKeys(MediaCodecRenderer.java:709)  
                                                                         at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:650) …
Run Code Online (Sandbox Code Playgroud)

crash android listener exoplayer exoplayer2.x

9
推荐指数
2
解决办法
7000
查看次数

自定义语音操作

有关语音操作Google Developer视频声明可以实施自定义语音操作.给出的例子是:

Ok Google, Shazam this song
Run Code Online (Sandbox Code Playgroud)

显然,这不是系统语音操作之一(拍照,设置闹钟等).视频提供的链接指向" 自定义语音操作"页面,其中指出:

For example, developers have implemented commands like "scan my receipt on Walmart"
or "watch trailer for Inception on Flixster."
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有任何关于如何实现自定义语音操作的解释,并且该页面含糊地指出:

Note: We are not accepting requests for Custom Voice Actions.
Stay tuned to Voice Actions - Google Developers and +GoogleDevelopers for product updates.
Run Code Online (Sandbox Code Playgroud)

这是否意味着根本不可能进行自定义语音操作 - 或者可能需要Google特别批准?

我想实现一个自定义的语音操作,所以我可以说一个自定义的短语,例如Ok Google, Foo Bar我自己的活动会选择它.这可能吗?

编辑:必须在应用程序尚未运行时执行 - 只是为了澄清.

android voice google-voice-actions

8
推荐指数
1
解决办法
1685
查看次数

从Android上的Chrome打开位置设置活动

我正在尝试使用Android Intents点击按钮,从Chrome(在Android上)打开位置设置.我正在关注条码扫描器示例并尝试以类似的方式对网址进行编码.对于位置,我试过这个: -

const uri = "intent://com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS#Intent;action=com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS;end"
Run Code Online (Sandbox Code Playgroud)

我也尝试用这个打开设置: -

const uri = "intent://ACTION_SETTINGS#Intent;action=android.provider.Settings.ACTION_SETTINGS;end"
Run Code Online (Sandbox Code Playgroud)

或这个

const uri = "intent://android.provider.Settings.ACTION_SETTINGS#Intent;action=android.provider.Settings.ACTION_SETTINGS;end"
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果.任何帮助表示赞赏.

我使用href标签将它附加到一个按钮.

browser android location google-chrome web

8
推荐指数
1
解决办法
1666
查看次数

Android视频录像机:未能获得表面

您好我正在尝试使用相机v2 API使用连接到它的Raspberry Pi相机模块的Raspberry Pi 3设备录制视频.

我正在使用Kotlin的Android Things开发这个.

这是我的视频录制代码的样子.

  override fun startRecording(videoCameraCallback: VideoCameraCallback) {
    val cameraIdList = cameraManager.cameraIdList
    cameraManager.openCamera(cameraIdList[0], cameraStateCalback, null)

    Log.d("JJJ", "start recording called")
}

    var cameraStateCalback = object : CameraDevice.StateCallback() {
    override fun onOpened(camera: CameraDevice?) {
        if (camera != null) {
            Log.d("JJJ", "onOpened and will now create handler and capture session")
            //create handler thread
            val thread = HandlerThread("MyHandlerThread")
            thread.start()
            val handler = Handler(thread.looper)

            //create capture session
            val mediaRecorderSurface = setMediaOutputSurface()
            val surfaces = ArrayList<Surface>()
            surfaces.add(mediaRecorderSurface)
            captureRequest =  camera.createCaptureRequest(TEMPLATE_RECORD).build()
            camera.createCaptureSession(surfaces, …
Run Code Online (Sandbox Code Playgroud)

video camera android kotlin android-things

8
推荐指数
1
解决办法
997
查看次数

创建带圆角的三角形

我需要创建带圆角的三角形.这是我的代码

<item android:gravity="center">
    <rotate
        android:fromDegrees="45"
        android:pivotX="-40%"
        android:pivotY="87%"
        android:toDegrees="45" >
        <shape android:shape="rectangle" >
            <corners android:radius="2dp"/>
            <solid android:color="#ffffff" >
            </solid>

            <stroke
                android:color="#ffffff" />

        </shape>

    </rotate>
</item>
Run Code Online (Sandbox Code Playgroud)

我的代码只有三角形的一边是圆形的,另外两个角没有圆角.请帮我创建三角形的圆角.

android shape draw

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

从byte [] android转换后,Mp3文件没有播放

我只是将一个mp3文件转换为字节代码并将该字节代码重新转换为mp3并保存到sdcard,所有过程都成功进行但问题是保存的mp3文件没有在设备mp3播放器上播放它显示不支持的格式.

我的下面的代码有什么问题

  private void convertBytesToFile(byte[] bytearray) {


    byte[] bytes = bytearray;

    String encoded = Base64.encodeToString(bytes, 0);
  //  Utilities.log("~~~~~~~~ Encoded: ", encoded);

    byte[] decoded = Base64.decode(encoded, 0);
    //Utilities.log("~~~~~~~~ Decoded: ", Arrays.toString(decoded));

    try
    {
        File file2 = new File(Environment.getExternalStorageDirectory() + "/hello-2.mp3");
        FileOutputStream os = new FileOutputStream(file2, true);

        os.write(decoded);
        os.close();
    }
    catch (Exception e)
    {
        Toast.makeText(this, "Somthing wrong", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

或者我遗失的任何东西.请帮朋友.

base64 mp3 android encode decode

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

Ctrl-D(Unix)和Ctrl-Z(Windows)的不同行为

根据标题,我试图理解带有gets的while循环中Ctrl+ D/ Ctrl+ 的确切行为Z(我需要使用它).我正在测试的代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{

    char str[80];

    while(printf("Insert string: ") && gets(str) != NULL) {

        puts(str);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我的输入只是一个Ctrl+ D(或Windows上的Ctrl+ Z),则gets返回NULL并且程序正确退出.不清楚的情况是我插入类似house^D^D(Unix)或house^Z^Z\n(Windows)的东西.

  1. 在第一种情况下,我的解释是getchar(或gets函数内部类似的东西)等待read()获取输入,第一个Ctrl+ D刷新非空的缓冲区(因此不是EOF)然后第二次调用read() EOF被触发.
  2. 在第二种情况下,我注意到第一个Ctrl+ Z被插入缓冲区,而后面的所有内容都被忽略了.因此我的理解是插入的第一个read()调用house^Z并丢弃其他返回5(读取的字符数)的其他内容.(我说5,因为否则我认为一个简单的Ctrl+ Z应该返回1而不触发EOF).然后程序等待来自用户的更多输入,因此进行第二次read()调用.

我想知道我的工作方式是对是错,哪一部分只是依赖于实现,如果有的话.


此外我注意到在Unix和Windows中,即使在触发EOF之后,它似乎在下面的gets()调用中重置为false ,我不明白为什么会发生这种情况以及代码的哪一行.

我真的很感激任何帮助.


(12/20/2016)我对我的问题进行了大量编辑,以避免混淆

c unix windows stdin

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

在主模块中找不到库模块中的包

我有一个从 Eclipse 导入到 Android Studio 的项目。在 Eclipse 中一切都运行良好。

它包含一个主模块(Eclipse 中的项目),它使用库模块(Eclipse 中的库项目)中的包。由于迁移进展不顺利,我手动创建了一个库模块,并将所有源代码复制到新创建的模块中。

问题是主模块似乎没有找到库模块中的包,当我重建项目时,我收到诸如“包 bla bla 不存在”之类的错误。

这是主模块 gradle.build:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    defaultConfig {
        applicationId "com.pointer.mamagoose"
        minSdkVersion 9
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':linphoneclean')
    compile 'com.android.support:support-v4:25.0.0'
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.google.android.gms:play-services:9.4.0'
    compile files('libs/firebase-client-android-2.5.0.jar')
    compile files('libs/apache-httpcomponents-httpclient.jar')
    compile files('libs/apache-httpcomponents-httpcore.jar')
    compile files('libs/android-support-v7-recyclerview.jar')
}
Run Code Online (Sandbox Code Playgroud)

linphoneclean 是库模块。

整个项目的settings.gradle:

include ':linphoneclean'
include ':tigris'
Run Code Online (Sandbox Code Playgroud)

这是库模块的build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion …
Run Code Online (Sandbox Code Playgroud)

android module android-library android-studio

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