solid
の色をのFragment
に変更しようとしています。Androidでシェイプのソリッドカラーをプログラム的に変更するにはどうすればよいですか?
<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>
私は自分のコードからアクセスできないようですし、私はすでに、スタックオーバーフロー上の次の答え試してみました:
Set android shape color programmatically
How to change shape color dynamically?
Change shape solid color at runtime inside Drawable xml used as background
なしにこれらの仕事はかなり古いです。私は色変更しよう
フラグメント:
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
...
}
}
}
「かなり古くなった」とはどういう意味ですか?彼らはうまくいくはずです。 –
@Bob Malooga、それを試しても、私にこのhttps://goo.gl/fXL4Peコードを与えてくれます:http://pastebin.com/KqNNTDnU – Edward