switch偏色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch偏色?相关的知识,希望对你有一定的参考价值。

国行才买没多久,放了两天就这样了,是质量问题么?懂得来

昨天下午约五点左右,我刚回来还没有坐稳,就听到外面有人叫我的名字。

“一定又有客户,外面可能已经忙不过来了!”我心里想着,连忙走了出去。

果然外面已忙的不亦乐乎。只见一个约二十来岁的小伙子抱着一台显示器站在前台焦急地望着周围的人。“瞧着这年轻人,多实在,已经进了屋了还抱着,为什么不找个地方先放下呢?”我心里想着,连忙从他手里接过显示器放在身边的椅子上。

“这台显示器什么毛病呢?”我问道。

“偏色。”他回答得倒挺干脆。

“是不是磁化了呢?您的显示器附近有没有放强磁场的家电,比如音箱等?”

“没有!”

“您买了多长时间了?”

“大概三年多一点了吧!”

 我想,插到我测试平台上试一下不就知道了嘛。于是我把这台显示器放在我的工作台上。我查看了一下显示器数据线的接头,因为少针也会出现缺色的现象,不过这台没有掉针。打开显示器,显示屏全屏明显的偏红。如果是局部偏红,大多是磁化所致。从这台显示器的现象及使和年限来看,应该属于显象管老化所致。由于过了保修期,已经不负责维修了,看来只能自己给它动“手术”了。我看了看表,已经到了下班的时候了。“能不能我们先收下,一星期内我们通知您?”我问道。他面露难色:“我是从丰台来的,比较远,来一回不容易。”唉!看来只能再加一会儿班了!


显示器从显像管发出的光只有红,绿,蓝三种。当三色光打在荧光屏上互相交叠从而显示为彩色。当显像管老化后某种光就会变弱,而三色光不平衡时,就会出现我们常见的偏色。象这台就是绿光与蓝光偏弱造成的。我打开显示口器的后盖,露出内面的电路板。有的显示器内部有色光的调节螺母。我仔细看了看,这台没有!看来只能把红光想办法调弱点了!在所有的CRT显示器在中间的高压包后面都有一个长方形的电路板。虽然不同的电路设计各不相同,但在电路板的中间如右图有7-9根针呈半环形分布却有一个世界统一的标准。G1是负压,GK负责绿色,G2就是我们常说的第二阳极(加速极),RK负责红色,二个H 是地线,BK负责蓝色。我用万用表量了一下RK的电压,都为负压了!因为电压趆高,色光离子束就趆弱,电压趆低,色光离子束就趆强,所以电压为负压倒没有出我的预料!下一步就是想办法把负责红光离子束的RK的电压调高即可,我仔细地查看了一下电路板,从RK出来的电路最终到了电路板左下角一排焊点的右边的两点上。我松了一口气,因为这两点就负责红色离子束的电压。我找了一个相当于滑动变阻器功能的电位器,然后用焊枪焊在了这两点上。

好了,“手术”快要成功了。我接上电源与信号线并打开显示器,然后用改锥调节电位器上的螺母,可恶的红色渐渐淡了、淡了,显示器终于又恢复了正常的状态!

送走了客户,已经是快七点了。

希望我能帮助你解疑释惑。

参考技术A 修改Switch 的颜色
1:效果图

2:布局

12345678

<Switch android:id="@+id/switch_bg" style="@style/switchStyle" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:switchMinWidth="52dp" />

  

3:switchStyle

123456789

<style name="switchStyle"> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">wrap_content</item> <item name="android:textOff">""</item> <item name="android:textOn">""</item> <item name="android:thumb">@drawable/switch_thumb</item> <item name="android:thumbTextPadding">10dp</item> <item name="android:track">@drawable/switch_track</item></style>

4: switch_thumb

12345

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/abc_btn_switch_to_on_mtrl_00012" /> <item android:drawable="@drawable/abc_btn_switch_to_on_mtrl_00001" /></selector>

 
5: switch_track
 

12345678910111213141516171819202122

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" > <shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="@dimen/switch_w" android:height="@dimen/switch_h"/> <solid android:color="@color/colorDefaultThemeGreen"/> <corners android:radius="@dimen/switch_r"/> </shape> </item> <item android:state_checked="false" > <shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="@dimen/switch_w" android:height="@dimen/switch_h"/> <solid android:color="@color/colorGray"/> <corners android:radius="@dimen/switch_r"/> </shape> </item> </selector>

6:实现方法

1234567891011121314151617181920212223242526272829303132333435

private void setSwitchColor(Switch switch_bg,int color) StateListDrawable stateListDrawable = (StateListDrawable) switch_bg.getTrackDrawable(); try Class stateListDrawableClass = StateListDrawable.class; Method getStateCountMethod = stateListDrawableClass.getDeclaredMethod("getStateCount", new Class[0]); Method getStateSetMethod = stateListDrawableClass.getDeclaredMethod("getStateSet", int.class); Method getDrawableMethod = stateListDrawableClass.getDeclaredMethod("getStateDrawable", int.class); int count = (Integer) getStateCountMethod.invoke(stateListDrawable, new Object[]); Log.d("Tag:", "setSwitchColor: --count: "+count); for (int i = 0; i < count; i++) int[] stateSet = (int[]) getStateSetMethod.invoke(stateListDrawable, 0); if (stateSet == null || stateSet.length == 0) GradientDrawable drawable = (GradientDrawable) getDrawableMethod.invoke(stateListDrawable, i); drawable.setColor(color); else Log.d("Tag:", "setSwitchColor:length: "+stateSet.length); for (int j = 0; j < stateSet.length; j++) Log.d("Tag:", "setSwitchColor: "+stateSet[j]); if(stateSet[j]==android.R.attr.state_checked) Drawable drawable = (Drawable) getDrawableMethod.invoke(stateListDrawable, j); drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); else Drawable drawable = (Drawable) getDrawableMethod.invoke(stateListDrawable, j); drawable.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP); catch (Exception e) e.printStackTrace();

以上是关于switch偏色?的主要内容,如果未能解决你的问题,请参考以下文章

switch的用法

switch语句的用法?

如何去出switch

R语言switch函数

switch语句怎么用啊 具体啊!

switch用法