I'm trying to change the solid
color of a shape
in my Fragment
.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/icon_circle_background">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
...>
<solid android:color="@color/md_cyan_400"/>
</shape>
</item>
<item
...
</item>
</layer-list>
I can't seem to access it from my code and I already have tried the following answers on stack overflow:
Set android shape color programmatically
How to change shape color dynamically?
Change shape solid color at runtime inside Drawable xml used as background
None of these worked or were pretty outdated.
Fragment where I try to change the color:
public class GameFragment extends Fragment {
private Theme currentTheme;
private Circle currentCircle;
private int currentOrganisationId;
private List<Card> circleCards;
private List<ImageButton> circleButtons;
private int viewHeight;
private int viewWidth;
private int marginCard;
private int[] tableStarts;
private RelativeLayout background;
private ViewTreeObserver vto;
public GameFragment() {
circleCards = new ArrayList<>();
circleButtons = new ArrayList<>();
tableStarts = new int[9];
}
//...
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_game, container, false);
...
background = setBackground(rootView);
circleCards = currentCircle.getCards();
return rootView;
}
//...
private void drawCards() {
circleButtons = new ArrayList<>();
for (Card card : circleCards) {
ImageButton myImageButton = new ImageButton(this.getContext()); //generate ImageButton
myImageButton.setId(card.getCardId()); //Set Id of button
myImageButton.setBackgroundResource(R.drawable.circle_card_icon);
//set random color to shape
...
}
}
}
were pretty outdated
mean? They should work just fine. – Lenitalenitive