- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 ImageView 设置为 fragment 的背景( ImageView 在宽度和高度上都设置为 match_parent)并且 scaletype 设置为 centerCrop。我下载了一张图片以异步方式放入其中,并在下载完成后使用 TransitionDrawable 在两者之间交叉淡入淡出。
图像第一次以正确的 scaletype 出现,但是如果我导航到另一个 fragment 然后返回到以 imageview 作为背景的这个 fragment ,图像看起来扭曲/拉伸(stretch)(看起来 imageView 设置为 fitXY 而不是)
如果我不使用 TransitionDrawable,图像会保持它们应有的样子。
是否有保持正确宽高比的 TransitionDrawable 等价物?还是我需要在 TransitionDrawable 上设置一些东西来防止这种大小调整?
我真正想做的是在图像之间进行漂亮的过渡。我正在考虑在完成动画后将图像设置为 TransitionDrawable 的第二层可绘制对象,但是无法监视动画何时完成...
编辑:我想我会提到图像的尺寸不同,不确定这是否会有所不同
编辑 2:这是设置可绘制对象的代码:
//code above to download image
BitmapDrawable bitmapDrawable = new BitmapDrawable(imageview.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{imageview.getDrawable(), bitmapDrawable});
imageview.setImageDrawable(transitionDrawable);
transitionDrawable.startTransition(300);
最佳答案
您是否使用了不同尺寸的图片?这可能是导致问题的原因。尝试使用相同尺寸的图像。
编辑:找到解决方案:使用setImageDrawable
命令后,您需要再次设置ImageView 的scaletype。
BitmapDrawable bitmapDrawable = new BitmapDrawable(imageview.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{imageview.getDrawable(), bitmapDrawable});
imageview.setImageDrawable(transitionDrawable);
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
transitionDrawable.startTransition(300);
关于安卓 TransitionDrawable : image scaletype changes upon fragment resuming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381970/
在代码中使用 TransitionDrawable 的预期方式是什么?有例子吗? 我制作了一个小型测试应用程序来放置一些上下文: public class SkeletonActivity exten
我在 xml 中定义了 TransitionDrawable,如下所示: transition.xml 我用它来动画复选框的状态变化: val stateDrawable =
我正在使用 TransitionDrawable 显示一组图像,在 之间进行过渡。使用我的 Activity 中的代码: TransitionDrawable simons; simons=(Tra
我正在尝试使用 TransitionDrawable 来在播放/暂停图标之间切换。当我第一次点击播放按钮时,播放图标保持不变,暂停按钮出现在播放图标的顶部。当我再次单击时,暂停图标消失,播放按钮在那里
我正在使用以下代码在我的 Android 应用程序中运行动画: RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativeL
我尝试了已接受的解决方案 here ,但它似乎忽略了填充。当第二个 View (在本例中为按钮)显示时,它比具有填充的原始 View 小得多。有解决方法吗?谢谢 最佳答案 是的,TransitionD
我阅读了文档,但无法进行转换。事件的流程应该是什么样的?谁叫谁? 假设我想让一个 Activity 调用 init() 来绘制 a 行,然后调用 go 进行 5 秒到 b 行的转换。我必须对此代码做什
我有一个 TransitionDrawable,我需要它的位图。当我使用 getCurrent() 获取它的 Drawable 时,显然结果仍然是一个 TransitionDrawable。但事实是
ViewPropertyAnimator(交叉淡入淡出效果)和 TransitionDrawable 之间的主要区别是什么?虽然两者似乎都在图像过渡上实现了相同的交叉淡入淡出效果。 最佳答案 Tran
我想在 Android 中创建一个带有文本和背景图像的按钮。背景图像应该每隔 X 次淡入淡出。 我使用带有 2 个图像的 TransitionDrawable 来完成这项工作。 但我无法让它处理超过
我正在尝试使用支持库 v4 的 RoundedBitmapDrawable 来显示在 ImageView 中异步加载的圆形位图,无论是圆形还是圆角矩形。 但是,看起来 RoundedBitmapDra
我试图在 CardView 背景上设置一个 switch-color 的动画,但我得到了这个: Cannot resolve method 'setCardBackgroundColor(androi
我试过这个: int firstColor = 0xFFFF0000; // red int secondColor = 0x00FFFFFF; // transparent Drawable[] d
我正在尝试使用 TransitionDrawable 在操作栏上制作一些彩色动画。 我尝试的代码非常简单,在 onCreate 期间,我将转换可绘制对象作为操作栏背景: Drawable d = ge
以下问题:Animate change of view background color on Android我正在尝试通过 TransitionDrawable 使 TextView 在两个背景之间
我有这段代码可以淡入淡出 ImageView 的背景: private void setWithCrossfade(Bitmap bitmap) { //create drawable vec
我想突出显示新添加的 ListView 项目,效果很好。我认为这很简单,但我偶然发现了一个问题: 我想播放 TransitionDrawable 动画,一旦它完成 - 倒带。新项目将高亮显示片刻,然后
我想使用 TransitionDrawable 对一些图像进行转换。但是,TransitionDrawable 只允许两个图像。如何动态更改图像? 最佳答案 如果你想使用 TransitionDraw
我有一个 TransitionDrawable。这两个状态都是 9-patch ,并定义了一个内容区域。问题是利润率太高了——事实上它基本上是应该的两倍。它似乎是将两个 9-patch 的边距相加。
我有一个从 png 渐变到 xml 可绘制对象(一个简单的渐变)的过渡可绘制对象。当我调用 startTransition(int time) 时,图像似乎奇怪地淡出,使前一个可绘制对象在背景中可见,
我是一名优秀的程序员,十分优秀!