Tag: android

我们可以在扑动中构建Android小部件吗?

Flutter大量使用Widget这个事实使得很难find关于这个主题的文档。 在Android上(我相信在iOS上这是不可能的),我们可以在我们的主页仪表板上添加小部件,允许查看应用程序相关的信息或触发一键式操作,而无需打开有问题的应用程序。 是否有可能在Dart&Flutter中构建这样的“小部件”? 或者我应该这样做在Java中,并以某种方式插入我的扑的应用程序? 你能分享一个例子或资源包含一个? 编辑:我没有Android的开发经验,但听起来像使用可绘制的canvas可能会做的伎俩。 我可以find一些canvas颤动的代码 ,但我不能连接点。 编辑2:从这个Github的问题 ,它看起来像编写Android家庭小部件在颤动是一个不行,因为Flutter有它自己的渲染引擎。 我热衷于学习kotlin来完成这个任务,但如果有人知道好的教程来帮助我,那将是非常有帮助的。

kotlin和ArgumentCaptor – IllegalStateException

我有一个通过ArgumentCaptor捕获类参数的问题。 我的测试类看起来像这样: @RunWith(RobolectricGradleTestRunner::class) @Config(sdk = intArrayOf(21), constants = BuildConfig::class) class MyViewModelTest { @Mock lateinit var activityHandlerMock: IActivityHandler; @Captor lateinit var classCaptor: ArgumentCaptor<Class> @Captor lateinit var booleanCaptor: ArgumentCaptor private var objectUnderTest: MyViewModel? = null @Before fun setUp() { initMocks(this) … objectUnderTest = MyViewModel(…) } @Test fun thatNavigatesToAddListScreenOnAddClicked(){ //given //when objectUnderTest?.addNewList() //then verify(activityHandlerMock).navigateTo(classCaptor.capture(), booleanCaptor.capture()) var clazz = […]

如何在图片中添加一个动态文本,全部都是可绘制的,就像Google日历应用中的“今天”操作项一样?

背景 Google日历应用有一个根据当天(“今天”)动态更改的操作项目: 我被要求做一个非常相似的事情,但在文字周围有一个稍微不同的图像。 问题 通过创建一个具有文本和图像的Drawable(基于这里 ),我成功地实现了它的工作。 不过,我觉得我做得不够好: 文字字体在不同设备上可能会有所不同,因此可能不适合我写的内容。 不知道是由于VectorDrawable还是文本,但我认为文字看起来不那么居中。 似乎在左边。 如果我使用两位数字,情况尤其如此: 为了垂直居中,我不认为我做了正确的计算。 我在那里尝试了更多合乎逻辑的事情,但是他们没有集中精力。 我试过了 下面是完整的代码(也可以在这里find一个项目): TextDrawable.java public class TextDrawable extends Drawable { private static final int DEFAULT_COLOR = Color.WHITE; private static final int DRAWABLE_SIZE = 24; private static final int DEFAULT_TEXT_SIZE = 8; private Paint mPaint; private CharSequence mText; private final int mIntrinstSize; private final […]

setRequestedOrientation,但仍然根据传感器而改变

我想在处理屏幕方向上模拟YouTubevideo查看行为。 用例: p1 。 当用户按最大化 – >活动总是进入风景 p2 。 当用户按最小化 – >活动总是进入纵向 p3 。 当用户旋转设备 – >屏幕方向应该相应地改变,即使之前应用p1或p2 。 目前我使用: @Override public void onClick(View view) { if (getResources().getConfiguration().orientation == ORIENTATION_PORTRAIT) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); } 但是这会永久锁定方向,并且会失败。

在Android模拟器上调用REST API会导致应用程序崩溃

我对android studio比较陌生。 我正尝试构建一个非常简单的应用程序,使用Bittrex交换API获取加密货币的价格。 然而,每次我尝试从URL获取信息,我的应用程序崩溃。 顺便说一句,我正在使用Kotlin。 我有麻烦解决这个问题,因为我不知道如何在调试模式下运行模拟器,只是编译器。 这是我的代码: package com.example.sebastian.cryptoapp import android.support.v7.app.AppCompatActivity import android.os.Bundle import java.net.URL import java.net.MalformedURLException import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { fun search(): String { //read in value var market = searchBar.getText().toString() //output text from URL query val result = URL(“https://bittrex.com/api/v1.1/public/getticker?market=” + market).readText() return result } fun getPrice(): String { //calling search […]

通用对值types的意图额外

很简单的问题:是否有可能find第二对参数(字符串,INT,捆绑等)通用的意图额外types? inline fun Context.startActivity(vararg params: Pair) { val intent = Intent(this, T::class.java) params.forEach { intent.putExtra(it.first, it.second) } startActivity(intent) } 谢谢

在android中的循环渐变

我试图做一个渐变,从屏幕的中间发出白色,并转向黑色,因为它移动到屏幕的边缘。 当我做出这样的“正常”渐变时,我一直在尝试不同的形状: 当使用“椭圆形”形状时,我至少有一个圆形,但没有梯度效果。 我怎么能做到这一点?

为一个开源项目创建dummy Fabric Api键

我正在开发一个开源项目(Kotlin,Toothpick,Clean Architecture – 时下的炒作主题,但这不是问题:)。 我正在使用Fabric的Crashlytics,所以我根据官方文档 (以下是一些细节 )将API和密钥隐藏到fabric.properties , 问题是什么是为合作者提供一些虚拟键而不需要解决这个属性文件中的合并冲突的最好方法? 如果我在没有这个文件的情况下发布这个项目,它会在构建时崩溃,因为Fabric将找不到所需的密钥。 我看到的选项: 将fabric.properties附加到不是来自实际应用程序仪表板的预定义API和密钥中,因此如果有人(有意或无意)制动分析或其他东西,它们的数据将位于单独的仪表板中。 什么都不做,所以如果有人感兴趣,他们必须手动。 提供回购的真正关键(我不认为这是一个好主意,但如果你有其他经验,请分享它) 也许,Fabric有一些虚拟键只是没有失败的构建没有他们(我还没有find他们)? 别的东西?

IllegalArgumentException:savedInstanceState指定为非空为空

当我启动MainActivity时出现一个奇怪的错误: 06-16 16:01:05.193 2083-2083/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.example.github, PID: 2083 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.example.github/com.android.example.github.ui.MainActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.IllegalArgumentException: Parameter specified […]

在WhatsApp中打开对话并填充文本

我想打开WhatsApp到一个特定的对话,并用一些字符串填充文本字段。 代码,我有,我设法打开与联系人的谈话: private void openConversationWithWhatsapp(String e164PhoneNumber){ String whatsappId = e164PhoneNumber+”@s.whatsapp.net”; Uri uri = Uri.parse(“smsto:” + whatsappId); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.setPackage(“com.whatsapp”); intent.putExtra(Intent.EXTRA_TEXT, “text”); intent.putExtra(Intent.EXTRA_SUBJECT, “subject”); intent.putExtra(Intent.EXTRA_TITLE, “title”); intent.putExtra(Intent.EXTRA_EMAIL, “email”); intent.putExtra(“sms_body”, “The text goes here”); intent.putExtra(“text”,”asd”); intent.putExtra(“body”,”body”); intent.putExtra(“subject”,”subjhect”); startActivity(intent); } 文本框中没有填充内容。 我试图偷看AndroidManifest.xml文件,发现他们的对话活动的以下信息: 有人知道额外使用? 他们故意阻止这个吗? 我在他们的常见问题页面看到了iOS的API。