Android中的星形按钮

我想在我的应用程序中放一个星形按钮,就像评级明星一样。 我已经尝试使用一颗星评级栏,但不幸的是它不能用作按钮。

我希望它可以作为一个按钮工作,如果所选状态的背景是黄色的话会更好……有什么建议吗? 谢谢。

Related of "Android中的星形按钮"

当然,使用这样的布局资源:

 

您可以将此配置与这样定义的状态列表drawable配对,该状态列表在res/drawable/star.xml保存为XML文件:

 < ?xml version="1.0" encoding="utf-8"?>           

以下是Android本身打包的图片:

  • 离
  • 上
  • 残
  • 按下 按下
  • 关闭按下 关闭按下

您可以使用内置的btn_star statelist drawable。

  //Needed to remove the button background 

我希望我最喜欢的按钮表现得像一个checkbox,所以这对我很有用,而不必在我的onClickListener中添加任何图像切换逻辑。 在我的Java代码中,我可以使用myFavoriteToggleButton.isChecked()来确定所采取的操作。

   

这是一个非常好的教程,用于创建自定义按钮,从头到尾。 如果您想要为每个按钮状态变得非常狡猾,您甚至可以创建自己的星形图像。

http://www.youtube.com/watch?v=zXXCFmfJMNw

只需在您的活动中添加以下代码:

 final ImageButton ButtonStar = (ImageButton) findViewById(R.id.star); ButtonStar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (isEnable){ ButtonStar.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(),android.R.drawable.btn_star_big_off)); }else{ ButtonStar.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(),android.R.drawable.btn_star_big_on)); } isEnable = !isEnable; } }); 

注意:define boolean isEnable = false global。 这是我的ImageButton xml代码:

  

Button StateListDrawable怎么样? 试试吧,哥们:)

http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html

我担心Android没有这样的内置控件。 您将需要使用Button (或ImageButton ),并将背景(或图像资源)设置为具有状态的drawable 。

您可以尝试将其作为文本视图插入。 这是我发现这样做最简单的方法。

在布局xml中,我将其添加为文本视图

  

然后在代码中编写了如下函数。

 boolean isfavourite; public void onToggleStar(View view){ TextView favouriteStar = (TextView) view; if(!isfavourite){ // if the star is not already selected and you select it isfavourite = true; favouriteStar.setTextColor(Color.parseColor("#FFD600")); }else{ // if the star is already selected and you unselect it isfavourite = false; favouriteStar.setTextColor(Color.parseColor("#9E9E9E")); } } 

可能需要使用一个有助于Button (或ImageButton )状态的selector 。 参考这个