gpt4 book ai didi

Android - 如何检查按钮背景颜色是否与 View 中的前一个相同(以编程方式)

转载 作者:行者123 更新时间:2023-11-30 01:24:18 26 4
gpt4 key购买 nike

在我的应用程序中,我以编程方式将按钮添加到我的 View 中。我制作了一个 LinkedList of String 来放置这个:数字是颜色

    ArrayList lesCouleurs;

我添加颜色:

lesCouleurs = new ArrayList<>();
lesCouleurs.add(0, Color.RED);
lesCouleurs.add(1, Color.BLUE);
lesCouleurs.add(2, Color.CYAN);
lesCouleurs.add(3, Color.GREEN);
lesCouleurs.add(4, Color.YELLOW);
lesCouleurs.add(5, Color.WHITE);

这是我以编程方式添加按钮的方法:(注释是法语)

 private void addButton() {
//Instanciation de l'enteier aléatoire


//Création programmatique d'un boutonn (cf. Doc Création programmatique de boutons)
final Button button = new Button(this);
//Instanciation du MediaPlayer
final MediaPlayer[] mediaPlayer = {new MediaPlayer()};
mediaPlayer[0].setAudioStreamType(AudioManager.STREAM_MUSIC);

//On récupère la taille de l'écran du terminal
this.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
button.setWidth(metrics.widthPixels / 2);
button.setHeight(metrics.heightPixels / 6);
//Et on ajoute les boutons à la vue avec les paramètres ajoutés ci-dessus
linearLayout.addView(button);

String myString = nomFichier;
int index = myString.indexOf(".");
String fileNameForButton = myString.substring(0, index);
button.setText(fileNameForButton);
button.setTextSize(25);

//On met le texte du bouton en gras
button.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));


//On choisit de manière aléatoire la couleur dans la liste proposée
int random= 0;
int color = 0;
if (nbButton > 0) {
while ((linearLayout.getChildAt(nbButton - 1).getBackground()).equals(linearLayout.getChildAt(nbButton).getBackground())) {
random = new Random().nextInt(lesCouleurs.size());
color = (int) lesCouleurs.get(random);
}
button.setBackgroundColor(color);
}
else {
random = new Random().nextInt(lesCouleurs.size());
color = (int) lesCouleurs.get(random);
button.setBackgroundColor(color);
}

final Uri myUri = Uri.parse(currentDir + "/" + nomFichier);
button.setTag(R.id.tag_uri, myUri);

//Dans le create, .prepare() est fait automatiquement pas besoin de le refaire dans le test if

final MediaPlayer[] finalMediaPlayer = {mediaPlayer[0]};

//Quand on clique sur le bouton
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (modeDelete) {
//Si le mode delete est activé, on supprime le bouton de la vue
linearLayout.removeView(button);
} else {
//En dehors du mode delete , on joue le son demandé
finalMediaPlayer[0].stop();
finalMediaPlayer[0].release();
finalMediaPlayer[0] = MediaPlayer.create(getApplicationContext(), myUri);
finalMediaPlayer[0].setVolume(0.5f, 0.5f);
finalMediaPlayer[0].start();
}

}
});
mediaPlayer[0].setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});

nbButton ++;

//On commit la nouvelle valeur dans les préférences
savePrefs();

}

当我加载回 te 首选项时,我希望它们获得与在 addButton() 方法中选择的颜色相同的颜色。

我使用放置在 ScrollView 中的 LinearView。

如何检查按钮背景颜色是否与 View 中的前一个相同?

最佳答案

我能想到的最简单的方法是将随机(颜色)保存到列表中,您可以通过它的编号访问每个按钮并检查它是否与前一个颜色相同。

添加List<int> colors = new ArrayList<int>();函数外

在函数中

random = new Random().nextInt(lesCouleurs.size());
colors.add(random);

然后比较列表的项目

如果这个答案解决了问题请标记为正确答案谢谢

关于Android - 如何检查按钮背景颜色是否与 View 中的前一个相同(以编程方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com