我正在测试HTC Desire,它是一个hdpi设备.查看图像时问题很明显:

以下是我的9补丁(使用标准9补丁工具制作)看起来(缩放)的方式:

左边的图像是我的photoshop文件,右边的图像是我设备的屏幕截图.正如您所看到的,存在巨大差异.让我们说阴影并不重要,但模糊的边界看起来很糟糕.
我的9补丁png错了吗?我该怎么做才能获得漂亮的1px实心边框?
我搜索了新的Google Android Map API v2的文档,但没有找到任何相关信息.在v2之前,我们(官方)无法正确显示每个应用程序(进程)的多个映射.我认为,随着MapFragment实施,它不再是一个问题.我也知道,Fragments自API 17以来,它可以是自包含的.而且,最后但并非最不重要的是,有兼容性包,这使得将它全部移回至少API 8成为可能(在API 7中,没有OpenGL 2.0所以地图不会起作用).
Sa我拥有将我的应用程序移植到Maps API v2并实现以下场景的所有要素:ViewPagercontains Fragments并且每个都包含一个MapFragment.
但我应该这样做吗?我的意思是,我将面临性能问题,如果我如20 Fragments包含MapFragments在一个ViewPager?
如果您在文档或其他地方找到了解决我问题的任何内容,请告诉我.
编辑:示例用法:让我们想象一个屏幕,其中包含有关某些特定项目的信息 - 地点,事件,文章.另外,让我们想象一下,在其他信息中,它必须包含一个完全正常运行的地图.但我希望用户能够根据需要刷到另一个项目.每个项目都有自己的地图.
旁注:我知道我可以在外面实现一个地图ViewPager,只是根据当前显示的项目进行更新,但这不是我想要的 - 它不是以用户为中心的设计.
可能的解决方案(但尚未检查).ViewPager只在它的缓存中保留一些(默认值为3)片段,并在它们即将显示时重新创建它们,因此不会有太多的内存开销,因为只需要少量内存MapFragments.MapFragment我认为,性能问题可能是通货膨胀非常沉重 - 但这可以通过回收再利用来解决MapFragments.
那么,如果我相信它会很好用的话,为什么我不会实现呢?还有一个问题是,如果MapFragments没有应用程序看起来像它已经坏了就无法移动.看到这个.
我有一块Observable,它最终会返回一个错误并重试或只返回onNext.我在onNext中不需要任何东西,所以这只是一个Observable<Unit>.
现在的问题是,在链的末尾,我必须点击这个onNext,除了旧的,我没有任何东西Observable.just().但我不能返回Observable.just(null),因为它返回Nothing?,而不是Unit.我不能回来Unit,因为它不可实现.所以我有Observable.just(null).map{}.它有效,但看起来很难看.想要更好的解决方案吗?
我很难配置基于JUnit Jupiter(5)的测试环境.那里有两个不同的错误:
WARNING: TestEngine with ID 'spek' failed to discover tests
org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name...
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute(Lorg/junit/platform/launcher/LauncherDiscoveryRequest;)V
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:61)...
Run Code Online (Sandbox Code Playgroud)
配置如下.
主要build.gradle:
apply plugin: 'org.junit.platform.gradle.plugin'
buildscript {
ext.kotlin_version = '1.1.4-3'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta5'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.junit.platform:junit-platform-gradle-plugin:1.0.0"
classpath "de.mannodermaus.gradle.plugins:android-junit5:1.0.0"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "http://dl.bintray.com/jetbrains/spek" }
}
}
junitPlatform {
filters {
engines {
include 'spek'
}
}
}
Run Code Online (Sandbox Code Playgroud)
模块 …
我有一个具有以下结构的项目:
multiplatformmodule - 包含一个 kotlin 类 SomeMultiPlatformClassjvmmodule - 一个纯 jvm 模块,它依赖于 multiplatformmodule问题是在 jvmmodule 中,我无法multiplatformmodule在运行测试时访问任何类。我明白了java.lang.NoClassDefFoundError: com/example/multiplatform/multiplatformmodule/SomeMultiPlatformClass。IDE (Anroid Studio) 也将此类标记为未解析。然而,当multplatformmodule从另一个多平台模块访问类时,它会构建。
在示例项目https://github.com/micHar/kmm-dependency-issues/tree/master 中可以看到更多内容。
在Lollipop中,我们可以更改状态栏背景的颜色,甚至可以使其透明.我们假设我想要一个浅色背景(#eee).状态栏图标的默认颜色为白色,因此它们将变得难以辨认.有可能让它们变暗吗?
我尝试在我的应用程序中使用相机,我遇到了正确处理配置更改的问题.我知道在典型的Activity(onSaveInstanceState等)中处理配置更改的正确方法,但在这里并非如此.
将我的活动视为全屏相机预览,带有叠加快门按钮和用于裁剪图像的框架
我想要实现的目标(预览股票HTC Sense相机):http://youtu.be/uzfUJUNHY68
也就是说:打开时的相机预览TextureView不应该在旋转时重新创建,但是活动应该是方向感知的,以定位元素.
我很确定我不希望Activity在轮换时重新创建.所以我尝试了这种android:configChanges方法.问题是onSurfaceTextureSizeChanged()仍然被调用并且相机预览被旋转并且整个体验不平滑(预览滞后片刻并且被"重新创建"或者某种东西).
我尝试将我的Activity锁定到横向通过android:screenOrientation="landscape",但这种方式onConfigurationChanged()没有被调用,我不知道如何定位其他视图,如上面的视频.我想我可以听一些加速器事件,但我很确定有更好的方法.在那儿?
问题是:如何在倒计时期间从CountDownTimer添加或删除时间?
例如:用户做了好事:+ 5秒,用户做错了什么:-5秒.
有人可以帮我一些代码吗?
我有EditText这样的.
<EditText
...
android:inputType="numberDecimal"
android:digits="0123456789.," />
Run Code Online (Sandbox Code Playgroud)
在大多数设备上它工作正常,所有指定的字符android:digits都被接受.但在三星GT-P5100(Galaxy Tab 2 10.1)上,逗号被禁用:

有任何想法吗?
android ×8
kotlin ×2
countdown ×1
google-maps ×1
junit ×1
junit5 ×1
jvm ×1
mapfragment ×1
mockito ×1
nine-patch ×1
rx-java ×1
spek ×1
timer ×1
unit-testing ×1