我想在Android中创建一个带有文本和背景图像的Button.背景图像应每X次交叉淡入淡出.
我使用带有2个图像的TransitionDrawable工作.
但我无法使用2个以上的图像.
是)我有的 :
在Java代码中,我创建一个Button并设置一个背景(这是一个在XML中定义的TransitionDrawable).我开始过渡.
final Button b = new Button(getApplicationContext());
b.setTextColor(getResources().getColor(R.color.white));
b.setText("Some text");
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.tile));
StateListDrawable background = (StateListDrawable) b.getBackground();
TransitionDrawable td = (TransitionDrawable) background.getCurrent();
td.startTransition(2000);
Run Code Online (Sandbox Code Playgroud)
在XML中我在tile.xml中定义
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#449def" />
</shape>
</item>
<item android:drawable="@drawable/transition">
<shape>
<solid
android:color="#0000ff" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
最后是一个transition.xml
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/desert"/>
<item android:drawable="@drawable/hydrangeas" />
<item android:drawable="@drawable/jellyfish" />
</transition>
Run Code Online (Sandbox Code Playgroud)
现在效果是,当我启动应用程序时,会显示沙漠图像.这个图像交叉渐变到绣球花图像应该.但水母图像从未显示过.
在TransitionDrawables的文档中,声明您可以指定2个以上的drawable,但我无法使其工作.
我也试过这个没有任何XML,但在纯JAVA,但这给出了完全相同的问题:-(
有谁知道你怎么知道为什么Google Play商店会为你创建的"不兼容"应用标记特定设备?
我创建了一个应用程序,我的一个测试设备是GalaxyTab2.在这个设备上,当你只是使用USB线将apk放在设备上或者只是从网站上下载时,应用程序的所有功能都没有问题.
但是,当我将应用程序上传到Playstore时,GalaxyTab2被列为不受支持的设备.所以GalaxyTab2用户无法安装该应用程序.
在Google Play开发者控制台中,您可以查看不受支持的设备的概述.但似乎您无法获得任何信息'为什么'设备不受支持.此电流列出了1000个设备.其中很多都是不受支持的,因为他们的Android版本太旧了.但是从一些设备(如GalaxyTab 2)我相信他们可以并且运行apk没问题.
我的一些清单:
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="16" />
Run Code Online (Sandbox Code Playgroud) 很多时候,我在Google Play开发者控制台中看到了一些缺少重要信息的例外情况.
例如,我在Google Play中遇到的最后一次崩溃是:
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2984)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14 (ActivityThread.java)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1642)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6776)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)
Caused by: android.support.v4.app.Fragment$InstantiationException:
at android.support.v4.app.Fragment.instantiate (Fragment.java:431)
at android.support.v4.app.FragmentState.instantiate (Fragment.java:102)
at android.support.v4.app.FragmentManagerImpl.restoreAllState (FragmentManager.java:1952)
at android.support.v4.app.FragmentController.restoreAllState (FragmentController.java:144)
at android.support.v4.app.FragmentActivity.onCreate (FragmentActivity.java:307)
at android.support.v7.app.AppCompatActivity.onCreate (AppCompatActivity.java:58)
at be.gps.android73.activities.LanguageActivity.onCreate (LanguageActivity.java:23)
at be.gps.android73.activities.main.MainActivity.onCreate (MainActivity.java:117)
at android.app.Activity.performCreate (Activity.java:6956)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2927)
Run Code Online (Sandbox Code Playgroud)
现在我能够在开发中重现这个崩溃.在这种情况下,您可以获得相同的堆栈跟踪,但有一些重要的额外信息,如下所示
....
Caused by: android.support.v4.app.Fragment$InstantiationException:
Unable to instantiate …Run Code Online (Sandbox Code Playgroud) 我在GWT中创建了一个DataGrid,并使列可以排序.
列的宽度总和宽度大于DataGrid的宽度.因此出现水平滚动条.
现在的问题是,当我在第一列上排序时,排序工作正常,但水平滚动条一直跳到右边.这确实是一个不受欢迎的影响.
只要最后一列可见,就不会再发生这种情况了.
这是一个已知的问题吗?
在IntelliJ中输入以下代码:
Runnable cronTask = new Runnable() {
@Override
public void run() {
// do something
}
};
Run Code Online (Sandbox Code Playgroud)
IntelliJ会自动建议使用lambda表达式时会更好。您可以选择自动转换为
Runnable cronTask = () -> {
// do something
};
Run Code Online (Sandbox Code Playgroud)
在Eclipse中是否可能发生这种情况?也许有某种插件?我希望Eclipse发出警告,告诉我lambda表达式可能是更好的解决方案。并且如果可能的话还建议正确的修复方法。