当我的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中有更清楚的描述.
有没有办法强制它先动画然后只调整大小?
Vim的Ctrl+ N通常是这样的:我输入几个字母,点击Ctrl+ N,Vim根据我所有打开的缓冲区中的单词为我提供完成.
Emacs的解决方案不必完全相同.我主要使用它:声明变量,然后在以后的代码中使用它.但我喜欢不解析源代码的轻量级方法.
我为我的应用程序实现了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) 有关语音操作的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 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标签将它附加到一个按钮.
您好我正在尝试使用相机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) 我需要创建带圆角的三角形.这是我的代码
<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)
我的代码只有三角形的一边是圆形的,另外两个角没有圆角.请帮我创建三角形的圆角.
我只是将一个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)
或者我遗失的任何东西.请帮朋友.
根据标题,我试图理解带有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)的东西.
getchar(或gets函数内部类似的东西)等待read()获取输入,第一个Ctrl+ D刷新非空的缓冲区(因此不是EOF)然后第二次调用read() EOF被触发.house^Z并丢弃其他返回5(读取的字符数)的其他内容.(我说5,因为否则我认为一个简单的Ctrl+ Z应该返回1而不触发EOF).然后程序等待来自用户的更多输入,因此进行第二次read()调用.我想知道我的工作方式是对是错,哪一部分只是依赖于实现,如果有的话.
此外我注意到在Unix和Windows中,即使在触发EOF之后,它似乎在下面的gets()调用中重置为false ,我不明白为什么会发生这种情况以及代码的哪一行.
我真的很感激任何帮助.
(12/20/2016)我对我的问题进行了大量编辑,以避免混淆
我有一个从 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)