Tag: 安卓

使用android从图像背景中检测颜色

我正在使用kotlin在android上制作一个应用程序,这里有一个棘手的部分,管理员必须将图像加载到应用程序,当完成后,布局的背景被设置为该图像,图像本身有4或5个红点根据蓝图传播。 我想要做的是检测这些点在哪里,然后把它们放在一些组件(Button,TextView ..)。 我知道我的问题有点复杂,但我希望有人能帮助我,因为我甚至不知道从哪里开始。 谢谢。

使用Kotlin的“let”的合理情况

在Kotlin中,如果一个对象( let接收者)不为null ,那么通常使用let来执行代码,以替代if != null检查,如下所示: val nullable: String? = “anything” nullable?.let { println(it) } 在其他情况下,利用let是否有意义? 仅供参考, let Kotlin的stdlib,定义如下: @kotlin.internal.InlineOnly public inline fun T.let(block: (T) -> R): R = block(this)

如何访问CalendarProvider与房间?

使用内容提供程序总是带有几乎不可读的样板,难以发现编程错误。 Android Architecture Components的房间持久性库缓解了这个问题,但它似乎并不适用于Android的内容提供商。 有没有人成功地使用日历提供程序或其他Android的内容提供商与房间,获得更多的可读代码? 如果是的话,请回答并张贴在Kotlin的小片,如果可以;) 谢谢你的帮助!

如何在模拟器上显示地图

从Android Studio开始,我创建了一个Map Activity项目; 所以,没有自定义代码。 唯一的自定义更改是复制google_maps_api.xml _( https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=) _中的url,并使用它创建API密钥。 Android Studio:3.0.1模拟器:带API 25的Nexus 5X Build.gradle文件 应用插件:’com.android.application’ 应用插件:’kotlin-android’ 应用插件:’kotlin-android-extensions’ android { compileSdkVersion 26 defaultConfig { applicationId“xxxx.xxx.xxxx” minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName“1.0” testInstrumentationRunner“android.support.test.runner.AndroidJUnitRunner” } buildTypes { 发布 { minifyEnabled false proguardFiles getDefaultProguardFile(’proguard-android.txt’),’proguard-rules.pro’ } } } 依赖{ 执行fileTree(dir:’libs’,include:[‘* .jar’]) 实施 “org.jetbrains.kotlin:科特林-STDLIB-jre7:$ kotlin_version” 实现’com.android.support:appcompat-v7:26.1.0′ 实现’com.google.android.gms:play-services-maps:11.0.0′ testImplementation’junit:junit:4.12′ androidTestImplementation’com.android.support.test:runner:1.0.1′ androidTestImplementation’com.android.support.test.espresso:espresso-core:3.0.1′ } […]

我们可以添加一个Flutter模块到现有的Android Studio项目吗?

我一直在阅读有关Flutter一段时间,我想转换我的应用程序的部分了解更多。 我有一个现有的Java / Kotlin编写的Android项目。 是否可以添加一个新的Flutter模块到现有的应用程序?

用于ViewModels的自定义半广义工厂

我想创建一个广义的ViewModelProvider.Factory来实例化我的ViewModels class BundledAppFactory(private var bundle: AppParameterBundle) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { Log.d(“Factory”, “Creating ${modelClass.canonicalName}”) Log.d(“Factory”, “${modelClass.canonicalName} has ${modelClass.constructors.size} constructors and ${modelClass.declaredConstructors.size} declaredConstructors”) modelClass.constructors.forEach { Log.d(“Factory”, “Constructor: $it”) } return when { AppViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppParameterBundle::class.java).newInstance(bundle) AppTeamUserViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppTeamUserParameterBundle::class.java).newInstance(bundle) AppTeamUserHuntIdViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppTeamUserHuntIdParameterBundle::class.java).newInstance(bundle) AppStringViewModel::class.java.isAssignableFrom(modelClass) -> modelClass.getDeclaredConstructor(AppStringParameterBundle::class.java).newInstance(bundle) else -> super.create(modelClass) } } } 这些是我的包: open […]

各种问题@NonNull,@NotNull和@ParametersAreNonnullByDefault

我是使用AndroidStudio或IntelliJ IDEA的Android开发者。 我倾向于相信我的IDE,并且对下一个事实感到恼火: 在IDE项目中,当IDE自动生成扩展Kotlin类的java中的一个方法时,两个IDE都使用@NotNull而不是@NonNull ,是否有这样的设置? 这个 我们有@ParametersAreNonnullByDefault但是当我从第1点重写方法,并且我没有把任何注释IDE警告我,但为什么? 我的假设是错的吗? 有解决方案吗?

Kotlinx从错误的布局注入视图

我有一段代码检查视图是否可见 import kotlinx.android.synthetic.main.activity_layout.* val isOverflowPanelShown: Boolean get() = overflow_panel.visibility != View.GONE 以前的代码会抛出exception java.lang.ClassCastException: android.widget.FrameLayout cannot be cast to android.widget.ScrollView at com.company.app.Activity.isOverflowPanelShown(Activity.kt:362) 该视图是ScrollView类的实例,但是kotlin认为它是一个FrameLayout 。 调用findViewById()在相同的地方作为错误被抛出正确返回ScrollView。 我发现在应用程序的不同布局中, 在相同的ID下有一个FrameLayout 。 我正在充气下面的布局 activity_layout 在另一个布局中,我使用完全不同的地方,有一个不同的视图,具有相同的ID。 form_component_main

使用Realm + PowerMockito无法在Android Studio中运行Robolectric测试

我使用Realm,PowerMockito和Robolectric为我的应用程序编写测试。 如果使用./gradlew test ,测试运行正常,但是如果使用Android Studio中的配置运行。 它会显示如下错误。 com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.powermock.modules.junit4.rule.PowerMockStatement$1 as it does not have a no-args constructor : Cannot construct org.powermock.modules.junit4.rule.PowerMockStatement$1 as it does not have a no-args constructor 有没有人有这个问题的解决方案? 这是我在Kotlin写的测试。 @RunWith(RobolectricGradleTestRunner::class) @Config(application = TestApplication::class, constants = BuildConfig::class, sdk = intArrayOf(21)) @PowerMockIgnore(“org.mockito.*”, “org.robolectric.*”, “android.*”) @SuppressStaticInitializationFor(“io.realm.internal.Util”) @PrepareForTest(RealmCore::class, RealmLog::class, Realm::class, RealmResults::class, RealmQuery::class) class RealmMiddlewareTest { data […]

从Android Studio运行时,Kotlin Kapt不显示数据绑定错误

我使用Kotlin kapt版本3,每当数据绑定出现问题时,Android Studio的构建失败,并出现非常通用的错误: Error:Execution failed for task ‘:app:kaptDev21DebugKotlin’. > Internal compiler error. See log for more details 当我从控制台运行相同的任务时,真正的问题就出现了。 不知何故AS不在消息窗口中显示这个错误。 我正在使用Android Studio版本2.3.3