我有聊天泡泡,我想在某些情况下着色:
Drawable bubbleDrawable = ContextCompat.getDrawable(context, R.drawable.bg_chat_bubble);
if (tint) {
bubbleDrawable = DrawableCompat.wrap(bubbleDrawable);
DrawableCompat.setTint(bubbleDrawable, bubbleTint);
}
Run Code Online (Sandbox Code Playgroud)
问题是,一旦它R.drawable.bg_chat_bubble(它是一个9补丁)被着色,那么所有的调用都会ContextCompat.getDrawable(context, R.drawable.bg_chat_bubble)返回有色图像而不是原始图像.即使我关闭聊天并打开完全不同的聊天,那里的气泡也有之前的色彩.只有杀死应用程序才有助于恢复正确的颜色.直到第一个色调......
即使bubbleDrawable = ContextCompat.getDrawable(context, R.drawable.bg_chat_bubble)在调用后直接设置色调分支内部也会setTint给出有色图像而不是原始图像.
我也试过,getResources().getDrawable(R.drawable.bg_chat_bubble)但结果是一样的.因此,一旦我想为任何可绘制的resrouce使用色调,我必须始终为该资源设置一个色调,否则我会得到不可预测的结果.
这种情况发生在Android 5.1(可能还有其他)以及appcompat-v7:23.2.+和appcompat-v7:23.1.+.这是一个知道的错误还是我做错了什么?
我有一个可选择的Button/ImageView的可绘制资源,如下所示:
<selector>
<item android:state_selected="true">
<layer-list>
<item>
<shape android:shape="oval">
<solid android:color="@color/blue"/>
</shape>
</item>
<item>
<bitmap
android:src="@drawable/ic_icon"
android:tint="@color/white"/>
</item>
</layer-list>
</item>
<item>
<layer-list>
<item>
<shape android:shape="oval">
<solid android:color="@color/background_unselected"/>
</shape>
</item>
<item>
<bitmap
android:src="@drawable/ic_icon"
android:tint="@color/icon_unselected"/>
</item>
</layer-list>
</item>
Run Code Online (Sandbox Code Playgroud)
因为我已切换到使用VectorDrawables,上述声明不起作用,因为我无法引用带<bitmap>标记的VectorDrawable .但据我所知,这是我可以给图标着色的唯一方法.
我也不能在代码中应用Colorfilter,因为这会使整个drawable而不仅仅是图标.
有什么建议?
在iOS 7中,更改uitextfield的"tint color"属性会更改该文本字段的光标颜色.在iOS 8中,即使我更改全局故事板色调颜色,也不会发生这种情况(objective-c,仍然适用于iOS 7).我该如何解决?
如何在FloatingActionButton中着色图标资源图像?我试过favoriteFab.setColorFilter(R.color.yellow, PorterDuff.Mode.OVERLAY);但没有成功.
我们希望重现Apple将颜色应用于控件的方式.我们正在开发基于网络的产品,因此必须自己重现颜色的配方/应用.
我们的分析显示它非平凡且至少是非线性的,因为某些颜色会重现完全不同的色调.
完美的答案将包括一个公式和/或解释如何计算工具栏的渐变以及给定色调颜色的工具栏上的按钮.
是否可以通过动画更改色调以获得更平滑的效果?
这对我不起作用:
[UIView beginAnimations:nil context:nil];
[self.navigationController.navigationBar setTintColor:[UIColor greenColor]];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
我不确定是否有可能使用原生苹果组件,因为我猜他们将使用CG来生成渐变...只是想在我开始构建自己的解决方案之前找出...
干杯们:)
iphone tint uinavigationbar uinavigationcontroller tintcolor
我创建了一个AnimatedSprite类,绘制一个特定的TextureRegion.有时我需要一种色调效果,所以我设置(this.color是Color我的一个字段AnimatedSprite):
super.draw(batch, parentAlpha);
batch.setColor(this.color);
batch.draw(this.frames[this.currentFrame], x, y, originX, originY, width, height, scaleX, scaleY, rotation)
batch.setColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)
但是,当我将AnimatedSprite颜色设置为黑色或任何颜色时,其他所有颜色都会有颜色.我甚至尝试flush(),结束批次并开始新的等等......但似乎没有任何工作.
请帮我正确应用色调效果.我会很感激任何想法.
我将名为 AccentColor 的非蓝色添加到我的 iOS app\xe2\x80\x99s 资源目录中。运行我的应用程序时,色调颜色默认为蓝色。
\n构建设置中的 \xe2\x80\x9cGlobal Accent Color Name\xe2\x80\x9d 已正确设置为 \xe2\x80\x9cAccentColor\xe2\x80\x9d。我还需要设置什么吗?什么设置可以覆盖这个?
\n