我有一个UIButton云,透明的黑色和白色.png文件的自定义,没有向下状态,只有一个图像.当用手敲击并握住手指时,它会变成深灰色.我试图把那个深灰色改成一点不那么压抑的东西.该按钮在视图中处于打开状态,而不是在选项卡栏,工具栏或导航控制器中.
我已经尝试过设置tintColor(文档有用地通知我只适用于'某些'类型的按钮,这些按钮没有任何指示).
我也尝试过改变我在Interface Builder中可以找到的与高亮颜色,默认状态等相关的所有内容.没有什么能够产生任何影响.
我甚至尝试将按钮自己的图像设置为其UIControlStateHighlighted状态,但即使这样,当我用手指按住它时也会出现深灰色叠加.
我怎样才能改变那种颜色?我已经在SO上查看了许多其他问题,并且无法找到适合我的解决方案.任何帮助将不胜感激!
编辑:我使用一个类别解决了问题,该类别UIImage添加了一个方法,用于CoreGraphics将颜色应用于提供UIImage.然后我将THAT图像设置为亮点,一切都很好.看起来有很多改变颜色的苹果应该让我们改变一下,但是我可以改变.
我到处搜索,但没有找到解决方案.我有图像1.如何以渐变方式对它们进行编程以获得图像2和3?以下是这些图片:

我通过Photoshop应用于它们的色调是简单的双色线性渐变.
我的问题是:如何以编程方式实现此效果?
解决方案: jrtc27给了我几乎成功的例子.我修复它(对于ARC)并使其可重用(使用UIImage的类别).就这个:
- (UIImage *)tintedWithLinearGradientColors:(NSArray *)colorsArr {
CGFloat scale = self.scale;
UIGraphicsBeginImageContext(CGSizeMake(self.size.width * scale, self.size.height * scale));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 0, self.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetBlendMode(context, kCGBlendModeNormal);
CGRect rect = CGRectMake(0, 0, self.size.width * scale, self.size.height * scale);
CGContextDrawImage(context, rect, self.CGImage);
// Create gradient
UIColor *colorOne = [colorsArr objectAtIndex:1]; // top color
UIColor *colorTwo = [colorsArr objectAtIndex:0]; // bottom color
NSArray *colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, (id)colorTwo.CGColor, nil];
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient …Run Code Online (Sandbox Code Playgroud) 我正在开发新的Android L预览版,现在处理drawable上的着色概念.
我想知道Android L Developer Preview中是否有关于可绘制着色的新内容.
我读到这篇文档说:
Android L开发人员预览版使您可以将位图或九个修补程序定义为alpha蒙版,并使用颜色资源或解析为颜色资源的主题属性对其进行着色(例如,
?android:attr/colorPrimary).您只能创建一次这些资源并自动着色以匹配您的主题.
但我不明白它与以前的版本有什么不同.我知道如何使用ColorFilter或PorterDuffColorFilter在图像上应用色调.任何有关这方面的帮助将不胜感激.
我正在尝试将色调应用于<layer-list>中的位图
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="@color/grey" />
<size android:width="45dp" android:height="45dp"/>
</shape>
</item>
<item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp">
<bitmap android:src="@drawable/ic_action" android:tint="#FF000000" />
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
预览显示它应该工作,FROM ANDROID-STUDIO:

但是在设备上部署时它不会着色: 
如果我在布局中使用ImageView,它确实正确着色,但是使用了图层列表失败了.我相信我已经尝试过每一个没有结果的tintMode.
如何将Bitmap着色为纯色,有效地将alpha> 0的所有像素替换为给定的RGB值?另外如何做同样的事情,但保持每个像素的alpha?我不是在寻找每像素操作,因为它们往往很慢.
我尝试使用ColorMatrixColorFilter和ColorFilter,它们对Bitmap进行着色,但它们着色而不是执行100%色调.
我在PreferenceActivity中使用CheckboxPreference,在v21支持库中使用AppCompat主题.正如您所知,使用这个最新的库小部件,如复选框,editTexts,单选按钮等,都会使用主题中定义的辅助颜色进行着色.在首选项屏幕中,文本是由我的主题指定的正确颜色,但复选框和edittext不是.似乎当CheckboxPreference实例创建窗口小部件时,它不会将我的主题应用于它.
正常布局中的单选按钮,有色:
截图1 http://i59.tinypic.com/2qv9stj.png
来自CheckboxPreference的复选框,没有着色:
截图2 http://i61.tinypic.com/91bcly.png
我用作父主题Theme.AppCompat.Light.NoActionBar.这种情况发生在Preference的每个子类中都有一个小部件,比如说EditTextPreference,其中EditText有一条黑色的底线,而不是有色的线.如何将色调应用于Preference子类显示的小部件?
更新:因为PreferenceActivity扩展了框架Activity,所以不应用着色.在工作案例中,我使用了支持库中的ActionBarActivity.现在的问题是:怎么了?
android tint android-appcompat android-preferences material-design
背景色调在API 23上正确应用,但在API 19上未正确应用.如何获得API 19及更低版本的drawable着色?
<Button
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/AbResetBtn"
android:background="@android:drawable/stat_notify_sync"
android:backgroundTint="@color/button_material_light" />
Run Code Online (Sandbox Code Playgroud)
当然,我的Activity扩展了AppCompatActivity.
刚刚在我的iPhone 3GS上切换到iOS 4,我的一些应用程序破了.
我遇到的一个问题是我有一个带有一些按钮的UIToolbar,有点粉红色,在3.1.3操作系统上运行良好.升级到iOS 4后,工具栏仍然有色,但它包含的按钮不再受色调的影响.工具栏是粉红色的,而按钮是常规蓝色.
在网上环顾四周,但没有发现这样的事情的参考.
谁知道这个过程中发生了什么?
如何着色菜单图标已经覆盖了几次,例如: Android上的工具栏图标着色
除此解决方案外,还存在导航图标的问题.将主题(叠加)应用于工具栏只会对文本和白名单图标进行着色(请参阅:https://stackoverflow.com/a/26817918/2417724)
如果您设置了一个自定义图标(这种情况非常简单,如果您不想显示默认的后退箭头,则需要更改它),则此自定义图标不会显示.
那你如何处理你的图标?我的所有图标都是默认的黑色,我不想在工具栏中使用特殊的白色版本.