假设我有两种颜色,我需要创建一个快速从颜色切换到另一种颜色的实时动画.
我试图增加十六进制的颜色,直到我到达另一个,但这给了一个非常糟糕的动画,因为它显示了许多不相关的颜色.
我setColorFilter(color, colorfilter)用来改变imageview的颜色.
改变HUE会给我最好的视觉效果吗?如果是这样,我怎样才能将其改为纯色?
解决方案:我通过递归移位色调来解决它
private int hueChange(int c,int deg){
float[] hsv = new float[3]; //array to store HSV values
Color.colorToHSV(c,hsv); //get original HSV values of pixel
hsv[0]=hsv[0]+deg; //add the shift to the HUE of HSV array
hsv[0]=hsv[0]%360; //confines hue to values:[0,360]
return Color.HSVToColor(Color.alpha(c),hsv);
}
Run Code Online (Sandbox Code Playgroud) 我的ListView有一个简单的选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/yellow_arc" android:state_activated="true"/>
<item android:drawable="@drawable/yellow_nonarc" android:state_activated="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
当视图的状态从激活变为未激活时,我希望为这些绘图之间的过渡设置动画,反之亦然.
如果您在API演示中运行示例,则会在视图的激活状态发生更改时看到明显的淡入/淡出动画.
所以我想要的是一个自定义动画,同时改变视图的状态.我认为它应该通过xml完成,但我找不到方法.
提前致谢.
编辑:
我想我找到了一些有用的东西activated_background.xml,\Android\android-sdk\platforms\android-API_VERSION\data\res\drawable其中包括
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
<item android:drawable="@color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
因此API演示中的示例通过声明一个来实现这个淡出动画exitFadeDuration.然而,这并不是我想要的.我想为状态drawables之间的过渡声明自定义动画,因为淡入/淡出动画对我的drawable来说看起来不太好.
我想以编程方式在Android中编辑矢量文件的填充颜色.
在xml文件中,我可以使用android:fillColor属性设置我的颜色, 但我想在运行时更改颜色.
有什么例子吗?谢谢.
我有一个简单的问题.
单击"搜索"图标时,如何将工具栏的颜色/或主题更改为白色?
每当点击搜索图标时,我希望工具栏为白色(背面箭头为黑色/灰色).我在MenuItem中添加了SearcView(android.support.v7.widget.SearchView)
至
然后在单击"返回"按钮时返回原始工具栏颜色.
我有个问题.我想动画的背景颜色的LinearLayout使用ObjectAnimator.
问题是,它的动画,但它确实存在期间也没有保健valueFrom和valueTo.
这是我的xml文件:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:propertyName="backgroundColor"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:valueFrom="#FF0000"
android:valueTo="#000000" />
Run Code Online (Sandbox Code Playgroud)
在Java中我称之为:
ObjectAnimator objAnim = (ObjectAnimator)AnimatorInflater.loadAnimator(getActivity(), R.animator.animator_bkg);
objAnim.setTarget(view);
objAnim.start();
Run Code Online (Sandbox Code Playgroud)
请注意,当我为布局的alpha设置动画时,它会按预期工作.
这是Android的bug(华硕Transformer上的4.0.3),还是我错过了什么?
我有一个TextView和一些文本.我需要创建一个持续30秒的动画,它会慢慢地将文本颜色从绿色变为红色.有任何想法吗?
我编写的代码可以每5秒随机更改一次背景图像.现在我想使用淡入/淡出动画来改变背景图像,但我不知道如何使用这个动画.
这是我的来源:
void handlechange() {
Handler hand = new Handler();
hand.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// change image here
change();
}
private void change() {
// TODO Auto-generated method stub
Random rand = new Random();
int index = rand.nextInt(image_rundow.length);
mapimg.setBackgroundResource(image_rundow[index]);
handlechange();
}
}, 4000);
}
Run Code Online (Sandbox Code Playgroud)
一切都好.我可以随机更改背景图像,但我不知道如何使用动画淡入/淡出.
如果有人知道解决方案,请帮助我,谢谢.
我需要找到一种方法来改变Android中位图的颜色.我需要根据int价值在我的应用程序中平滑地替换/更改椭圆形图像的颜色.我需要的东西就像是myValue=5改变我的图像的颜色RED,如果myValue=322改变颜色BLUE.我发现我能做到这一点的唯一方法是使用xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<solid android:color="#cccccc"/>
<corners
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
然后在myValue更改时设置我的ImageView图像资源.但是这样我必须创建35个不同的xml文件......我认为这不是一个好主意.
那么谁能建议更好的解决方案呢?
我正在尝试在单击时更改textview的背景.
例如,如果单击文本视图,则背景将变为黄色并保持黄色,直到再次单击为止.然后它返回到默认背景.
当前textview按下时的背景更改,但在发布时返回默认值.
我在互联网上搜索解决方案,并查看堆栈溢出的大部分解决方案,仍然没有解决方案.
可绘制/ selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/circle_on" android:state_enabled="true" android:state_pressed="true"/>
<item android:drawable="@drawable/circle_on" android:state_enabled="true" android:state_focused="true"/>
<item android:drawable="@drawable/circle_off"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
可绘制/ circle_on:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<stroke
android:width="2dp"
android:color="@color/Gray" >
</stroke>
<solid android:color="@color/LightBlue" />
</shape>
Run Code Online (Sandbox Code Playgroud)
可绘制/ circle_off:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<stroke
android:width="2dp"
android:color="@color/Gray" >
</stroke>
<solid android:color="@color/WhiteSmoke" />
</shape>
Run Code Online (Sandbox Code Playgroud)
TextView的:
<TextView
style="@style/RoundText"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/repeat_selector"
android:clickable="true"
android:text="Sun" >
</TextView>
Run Code Online (Sandbox Code Playgroud)
文字样式:
<style name="RoundText">
<item name="android:textColor">#555555</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textSize">15sp</item>
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">sans-serif-thin</item>
</style>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我做错了什么
谢谢.
MY解决方案:
public class PlanTextView extends …Run Code Online (Sandbox Code Playgroud) 关注问题:Android上视图背景颜色的动画更改我试图通过TransitionDrawable资源使TextView在两个背景之间淡入淡出.我的转换xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/gray_bar" />
<item android:drawable="@drawable/green_bar" />
</transition>
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式将其设置为运行时的背景:
TextView answerBox = (TextView) findViewById(R.id.answerBox);
answerBox.setBackgroundResource(R.drawable.correct_transition);
TransitionDrawable transition = (TransitionDrawable) answerBox.getBackground();
transition.startTransition(1500);
Run Code Online (Sandbox Code Playgroud)
结果是textview转换成:
对此:

当整个灰色条应该变成绿色条.
两者都是9补丁png图像.这些是原件:

我的猜测是绿色条填满了灰色条内的文字空间,但我不知道为什么.有线索吗?尽管出现了所包含的图像,灰色的也看起来比它应该大得多,但是在转换之前,期间或之后不会改变大小.这可能是9补丁图像的问题,因为我已经测试了正常图像,并且过渡效果很好.
谢谢你的帮助!
我尝试了这里发布的已接受的解决方案,但似乎忽略了填充.当显示第二个视图(在这种情况下是一个按钮)时,它比具有填充的原始视图小得多.有解决方法吗?谢谢
我有我的风格
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MYTheme" parent="...">
<item name="android:navigationBarColor">@color/navigationBarColor</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我知道我可以改变导航栏的颜色
getWindow().setNavigationBarColor(...);
Run Code Online (Sandbox Code Playgroud)
我想用动画改变颜色,当前颜色和新颜色之间的过渡