我在github和这里使用基于这个例子的新的Android设计库chrisbanes/cheesesquare
我运行了这个例子,我遇到了CheeseDetailActivity里面的工具栏问题.工具栏未按预期显示.看看下面的图片:
在第一张图像中,您可以看到工具栏未正确显示.
在第二个图像中,您可以看到工具栏显示正确但通知栏为白色.发生这种情况是因为我从actiivty_detail.xml中删除android:fitsSystemWindows="true"
了android.support.design.widget.CoordinatorLayout
我认为这fitsSystemWindows
应该是真的,问题与此有关,android.support.design.widget.AppBarLayout
但我不知道如何解决这个问题.我尝试marginTop
了相同的高度,notificationBar
但它没有工作.
任何建议表示赞赏:)
这是以下内容的一部分activity_detail.xml
:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="@dimen/detail_backdrop_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud) android android-layout android-toolbar android-design-library
我正在Android Annotations
和我合作,今天我做了新的更新Android Studio 1.0.
当我构建项目时它给了我这个错误:
Error:(40, 0) Could not find property 'processResources' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@54335f5.
Run Code Online (Sandbox Code Playgroud)
这是我的build.gradle
文件my project
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
// the latest version of the android-apt plugin https://bitbucket.org/hvisser/android-apt
// http://stackoverflow.com/a/25939518
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
} …
Run Code Online (Sandbox Code Playgroud) 我使用了一个API,它给了我这种类型的JSON:
{
"data": {
"name": "Start",
"pid": "1",
"position": {
"data": {
"x": "31",
"y": "330"
},
"metadata": "empty"
}
},
"metadata": "empty"
}
Run Code Online (Sandbox Code Playgroud)
我创建了具有与上述JSON相同结构的对象的类.我retrofit
在Android中使用lib,里面GSON
用于解析JSON.
我的模型类是这样的:
MResponse.class
public class MResponse {
@SerializedName("data")
public User user;
String metadata;
}
Run Code Online (Sandbox Code Playgroud)
User.class
public class User {
public String name;
public String pid;
@SerializedName("position")
public PositionData positionData;
}
Run Code Online (Sandbox Code Playgroud)
PositionData.class
public class PositionData {
@SerializedName("data")
public Position position;
public String metadata;
}
Run Code Online (Sandbox Code Playgroud)
Position.class
public class Position {
public String x;
public …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Flutter示例项目,其中展示了如何在 Android 应用程序(以及 iOS)内共享 FlutterView。
在使用它时我尝试了这个:
我对 Android 项目进行了更改,例如更改主题颜色,如果我进行热重载/运行,因为main.dart
我看不到正在运行的应用程序中反映的更改。我必须从 Android Studio 停止它并main.dart
再次运行才能看到更改。
为了解决这个问题,我正在考虑添加一个run/debug configuration
Androidapp
模块。这样我就可以运行 androidapp
而不是main.dart
.
有没有办法在 Android Studio 中实现这一点?
android
对我来说,一个解决方案是从 Android studio 中的新窗口打开(/flutter_view/android/app) 项目。我可以这样运行应用程序。
(但在这里我遇到了另一个问题,以防有人有解决方案)。
在 JavaDoc 中,您可以添加如下图像:
/**
* ...The following legend explains these diagrams:
* <img width="640" height="577" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.png" alt="">
*/
public class Test {
}
Run Code Online (Sandbox Code Playgroud)
我如何在 Kotlin Kdoc 中实现同样的目标?
我正在开发一个包含裁剪功能的应用程序,在这种情况下我在下面的场景中被阻止。
场景:
如果我们更改裁剪叠加,当我们对图像应用拉直时裁剪叠加不会循环整个图像,比例也不起作用。
我从谷歌得到了代码,但它与矩阵有关,我尝试使用矩阵,但在这里我需要找到矩阵的坐标(边)来移动叠加层。
如何找到它?如果有人有任何想法,请帮助我...
我添加了图像来解释问题
提前致谢..
我正在使用下面的代码,但我没有得到矩阵的确切坐标
RectF r = new RectF();
mymatrix.mapRect(r);
Rect rect =
new Rect((int)r.left,int)r.top,int)r.right+width,int)r.bottom+height);
Run Code Online (Sandbox Code Playgroud) 我正在Android项目中实现webrtc,我基于github中的这个示例.
此示例使用libjingle库.这是创建视频渲染视图的方式:
// Create video renderers.
VideoRendererGui.setView((GLSurfaceView)videoView, new Runnable() {
@Override
public void run() {
createPeerConnectionFactory();
}
});
remoteRender = VideoRendererGui.create(
REMOTE_X, REMOTE_Y,
REMOTE_WIDTH, REMOTE_HEIGHT, scalingType, false);
localRender = VideoRendererGui.create(
LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING,
LOCAL_WIDTH_CONNECTING, LOCAL_HEIGHT_CONNECTING, scalingType, true);
Run Code Online (Sandbox Code Playgroud)
我的问题是我如何设法自定义remoteRender
和localRender
,以便我可以position
在GLSurfaceView
它的宽度和高度更改它
编辑:
我做了一个听众,我试过这个:
@Override
public void onWidthHeightChange(int width, int height) {
VideoRendererGui.update(remoteRender,
REMOTE_X-width, REMOTE_X-height,
REMOTE_WIDTH-width, REMOTE_HEIGHT-height, scalingType, false);
if (iceConnected) {
VideoRendererGui.update(localRender,
LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED,
LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED,
ScalingType.SCALE_ASPECT_FIT, true);
} else {
VideoRendererGui.update(localRender,
LOCAL_X_CONNECTING, LOCAL_Y_CONNECTING, …
Run Code Online (Sandbox Code Playgroud) 我知道如何在 Android 移动设备中检测显示键盘时,但如何在 Android 电视或 Fire 电视上做到这一点?
我只是用 Android Studio(AS) 创建了一个新的 android 项目。我添加了一个library module
带有矢量可绘制对象和一个带有注释的 Kotlin 文件。我运行 assemble release 并生成一个aar
文件。
我用 AS 反编译器打开这个 aar 发布文件,我看到矢量文件被转换为 png 以用于不同的可绘制对象,并且 Kotlin 文件被混淆了compiled code
。
原始xml矢量文件只能在目录中找到 drawable-anydpi-v24
如何禁用vector to png
和file obfuscation
用于我的库模块?
我有默认的 build.gradle: minifyEnabled false
(我已经知道org.jetbrains.dokka
所以请不要说只是使用它)
今天我更新了 android studio 中的 gradle 和 kotlin 依赖项。
新版本如下:
kotlin_version = "1.5.10"
...
jacoco {
toolVersion = "0.8.6"
}
...
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
Run Code Online (Sandbox Code Playgroud)
测试覆盖率报告任务失败并出现以下错误:
2021-05-27T16:57:49.150+0200 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':consumerkit:testDebugUnitTestCoverage'.
2021-05-27T16:57:49.304+0200 [DEBUG] [org.codehaus.groovy.vmplugin.VMPluginFactory] Trying to create VM plugin `org.codehaus.groovy.vmplugin.v9.Java9` by checking `java.lang.Module`, but failed:
java.lang.ClassNotFoundException: java.lang.Module
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.codehaus.groovy.vmplugin.VMPluginFactory.lambda$createPlugin$0(VMPluginFactory.java:61)
at java.security.AccessController.doPrivileged(Native Method)
Run Code Online (Sandbox Code Playgroud) 我想在 android 中使用 Joda 时间库将时间转换为手机本地时区。
例如,我有 UTC 时间: 2016-01-14 11:13:56
我现在的时间是: 2016-01-14 12:13:56
当我运行此代码时:
DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
DateTimeZone.UTC);
String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)
我得到: 2016-01-14T10:13:56.000Z
当我运行此代码时:
DateTime dt = DateTime.parse(usersResponse.lastUpdate, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)
我得到: 2016-01-14T11:13:56.000+01:00
当我运行此代码时:
DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
DateTimeZone.forID("Europe/Rome"));
String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)
我得到: 2016-01-14T11:13:56.000+01:00
但这是错误的,我应该收到: 2016-01-14T12:13:56.000+02:00
有没有我遗漏的配置。这个问题是否与夏令时有关(从这里的一些问题来看,我已经看到 Joda Time 管理了这个问题)
我怎样才能获得设备本地时间的时间。
谢谢
我在 android 项目中执行了这段代码Kotlin
,它将记录两条消息。如果我将其更改token
为Char
,否则String
它将仅打印一条消息,这是所需的行为。android 中的 java 项目中的相同用例可以正常工作。
val handler = Handler()
//val token1: Long = 1001L
//val token2: Int = 121
val token1: Long = 1001L
val token2: Int = 1002
handler.postAtTime(
{
Log.e("postAtTime 1", " printed 1 ")
handler.removeCallbacksAndMessages(token2)
},
token1,
SystemClock.uptimeMillis() + 2000
)
handler.postAtTime(
{
Log.e("postAtTime 2", " printed 2 ")
},
token2,
SystemClock.uptimeMillis() + 4000
)
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么在 Kotlin 中,对于 类型的标记Int
,Long
处理程序不会删除回调?
编辑 如果我尝试使用注释值,它会起作用