Ответ 1
Хорошо, я быстро сыграл с этим и заметил, что ваша проблема исчезновения кругов. Если вы не указали, что именно вы пытались, я предполагаю, что вы еще не пытались установить цветной фильтр на Drawable
? (в отличие от ImageView
, который работает только с BitmapDrawable
s).
Следующие утверждения отлично работают для объявленного xml ShapeDrawable
с белым как начальный цвет:
ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview);
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview);
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview);
// we can create the color values in different ways:
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY );
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY );
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY );
ShapeDrawable
для полноты: (я устанавливаю размер на ImageView
, см. ниже)
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="@android:color/white" />
</shape>
И один из ImageView
как пример:
<ImageView
android:id="@+id/circle_red_imageview"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="5dp"
android:src="@drawable/circle_white" />
Визуальный результат: