2013-11-11 3 views
1

Я следил за некоторыми примерами, чтобы нарисовать круг, но когда я меняю цвет, круг поворачивается к квадрату. Цвет применяется к виду. Как изменить фактический круг с цветом «@ + id/circle2», а не на то, что отображается, которое содержит круг.Форма поворачивается к квадрату при попытке изменить цвет

circle.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" 
android:id="@+id/circle2" > > 
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" 
android:angle="270"/> 
</shape> 

Это в главном XML

 <View 
    android:id="@+id/colordot" 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:layout_marginLeft="325dp" 
    android:layout_marginTop="35dp" 
    android:background="@drawable/circle" /> 

я бросил представление, содержащее circle.xml

F1Color =(View) findViewById(R.id.colordot); 

изменить цвет

F1Color.setBackgroundColor(Color.rgb(R_value,G_value,B_value)); 

Это хорошо работает, спасибо

private void SetColorDot(int index, int i, int j, int k) 

       Resources res = getResources(); 
     final Drawable drawable = res.getDrawable(R.drawable.circle); 
     drawable.setColorFilter(Color.rgb(i, j, k), Mode.SRC_ATOP); 
     ImageView img = (ImageView) findViewById(R.id.colordot1); 
     img.setBackgroundDrawable(drawable); 

ответ

0

при использовании View.setBackgroundColor(color);, это заменяет предыдущий Drawable вы установили в качестве фона с новым ColorDrawable, поэтому вы видите квадратную форму ,

Одним из возможных решений могло бы изменить colordot от View к ImageView - что позволит вам использовать setColorFilter(). вы можете использовать свой цвет RGB в ColorFilter, чтобы перекрасить свой круг, то есть:

F1Color = (ImageView) findViewById(R.id.colordot); 
F1Color.setColorFilter(new LightingColorFilter(Color.BLACK, Color.rgb(R_value, G_value, B_value)); 
+0

Я внесла изменения, и он стал черным при настройке цвета. – Bobby

+0

черный круг или черный квадрат? – panini

+0

Черный круг. Почти там ... – Bobby

Смежные вопросы