J'ai une disposition linéaire dans mon fichier XML et j'ajoute une autre disposition linéaire (contenant deux textviews) à cette mise en page linéaire via java. Les événements tactiles fonctionnent parfaitement, mais je veux mettre en évidence la disposition linéaire sélectionnée en définissant la couleur d'arrière-plan. Veuillez nous conseillerModification de la couleur d'arrière-plan de la mise en page linéaire en cliquant sur
Répondre
mettre fichier selector.xml dans le dossier drawable (res/drawable)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_focused" android:state_pressed="true"/>
<item android:drawable="@drawable/list_focused" android:state_enabled="true" android:state_focused="true" android:state_window_focused="true"/>
<item android:drawable="@drawable/list_raw_img"/>
</selector>
et fond ensemble de votre mise en page linéaire dans le fichier xml
android:background="@drawable/background"
incorrect, vous ne pouvez pas nommer le fichier selector.xml puis appelez @ drawable/fond et s'attendre à ce que cela fonctionne –
Essayez la fonction View
setBackgroundColor()
Voir les documents Android:
http://developer.android.com/reference/android/view/View.html#setBackgroundColor%28int%29
public void setBackgroundColor (int color) Added in API level 1
Sets the background color for this view.
Parameters
color the color of the background
Define background.xml dans le dossier drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/pressed" />
<item android:state_focused="false"
android:drawable="@drawable/normal" />
</selector>
normal.xml dans le dossier drawable
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
</shape>
pressed.xml dans le dossier drawable
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF1A47"/>
</shape>
ensuite mis fond à votre mise en page
android:background="@drawable/background"
Vous pouvez également définir l'arrière-plan comme ci-dessous
Sur tactile de votre mise en page
ll.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
ll.setBackgroundColor(Color.RED);
break;
case MotionEvent.ACTION_UP:
//set color back to default
ll.setBackgroundColor(Color.WHITE);
break;
}
return true;
}
});
Quelle que soit la méthode que vous avez choisi (XML/code) - assurez-vous de faire votre LinearLayout
cliquable:
XML:
android:clickable="true"
code:
myLinearLayout.setClickable(true);
Merci! Son travail pour moi –
La méthode suivante vous voulez que vous voulez obtenir. Même l'animation d'ondulation dans Lollipop. Il suffit de passer un contexte, la vue (peut être une disposition linéaire):
public static void setClickableAnimation(final Context context, final View view) {
final int[] attrs = new int[]{R.attr.selectableItemBackground};
final TypedArray typedArray = context.obtainStyledAttributes(attrs);
final int backgroundResource = typedArray.getResourceId(0, 0);
view.setBackgroundResource(backgroundResource);
typedArray.recycle();
}
Voici ma solution, il est très simple:
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_pressed_tab"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/service_request"
android:textColor="@color/white"
android:textSize="@dimen/text_size_small" />
<requestFocus />
</LinearLayout>
bg_tab_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_longAnimTime">
<item android:drawable="@color/colorPrimaryDark" android:state_focused="true" android:state_pressed="true" />
<item android:drawable="@color/colorPrimaryDark" android:state_focused="false" android:state_pressed="true" />
<item android:drawable="@color/colorPrimaryDark" android:state_focused="true" android:state_pressed="false" />
<item android:drawable="@color/colorPrimary" android:state_focused="false" android:state_pressed="false" />
</selector>
- 1. Amène la mise en page linéaire 2 en dessous de la disposition linéaire 1
- 2. Changer la couleur du texte de TextView en cliquant sur
- 3. solution de mise en page linéaire Android
- 4. Comment placer la mise en page relative au bas de l'écran (ou mise en page linéaire).?
- 5. Couleur blanche en bas de la mise en page
- 6. Modification de la source img en cliquant sur le bouton
- 7. Comment masquer une partie de la mise en page en appuyant/en cliquant sur
- 8. paramètres de mise en page principaux disparu après modification de la mise en page
- 9. Mise en page sur une mise en page, image de fond centrale de la mise en page de dessus
- 10. Overlay Bouton flottant dans la mise en page linéaire
- 11. Modification d'une couleur en fonction de la couleur de l'iPhone
- 12. Changement de la couleur de mise en page par programme
- 13. Changer la couleur de la cellule du tableau en cliquant
- 14. Modification de la mise en page panoramique? Windows Phone 7
- 15. Modification de la mise en page dynamique Android
- 16. comment changer la couleur de la polyligne en cliquant dessus?
- 17. Mise en page linéaire non visible/chevauchant
- 18. Ajouter dynamiquement des images sur une mise en page linéaire
- 19. admob disparaît après modification de la mise en page
- 20. Mise en page Android image de fond et la couleur
- 21. Problème de mise en page linéaire au moment de l'exécution
- 22. en cliquant sur le titre de la page
- 23. Cacher div en cliquant sur le corps de la page
- 24. ouverture de la page Web en cliquant sur le TabHost
- 25. Changer la couleur lors de la modification
- 26. Modification de la couleur du thème de la page Web
- 27. Modification de l'échelle linéaire d'Auriotouch en logarithmique
- 28. XML android scrollview et problème de mise en page linéaire
- 29. Modifier la largeur de la mise en page et aligner sur le côté droit tout en cliquant sur le bouton
- 30. Modification de l'arrière-plan de la mise en page en fonction du thème
afficher le code ce que vous avez essayé –
Implémentez les événements Touch ou Click pour 'LinearLayouts' et modifiez sa couleur d'arrière-plan en fonction de la sélection des mises en page. – GrIsHu
Raghunandan a une bonne réponse - vous devez le choisir – AndrewS