单击时如何使android精密计时器不可见和可见

时间:2011-09-11 20:35:59

标签: android android-imageview android-relativelayout chronometer android-shape

我正在使用的应用程序左侧是一个带有精密计时器的标题栏,另一个是以RelativeLayout为中心的textview。

Title bar with Chronometer and TextView

RelativeLayout取textview的高度并填充屏幕宽度

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/titlecontainer"
    android:orientation="vertical"
    android:padding="5dip" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" android:background="@color/titlebckgrnd">

我希望在用户点击时隐藏色度计,并再次取消隐藏用户点击。

如何实现这一目标?

编辑,进一步回答和评论

这是颜色文件代码

<?xml version="1.0" encoding="utf-8"?>
   <resources>
   <color name="titlebckgrnd">#FFD55A2E</color>
   <color name="titletext">#FFFFFFFF</color>
 </resources>

我使用了以下代码

final TextView chron = (TextView)findViewById(R.id.chronometer);
    ((Chronometer) chron).start();
 chron.setOnClickListener(new OnClickListener() {
        private boolean mToggle = true;
        @Override
        public void onClick(View v) {
                Log.d("Gaurav", "Invisible");
                if(mToggle) { 
                    Log.d("Gaurav", String.valueOf(chron.getCurrentTextColor()));
                    chron.setTextColor(R.color.titlebckgrnd);
                    mToggle = false;
                }
                else {
                                          chron.setTextColor(R.color.titletext);
                                          mToogle = true;
                                    } 


                //chronImage.setVisibility(View.VISIBLE);

                //v.setVisibility(View.INVISIBLE);

        }
    });

但结果是

enter image description here

并且它不会再响应任何点击次数。

LogCat结果

enter image description here enter image description here

即使调试器断点显示Textcolor值发生变化,但显示中的颜色变化也不会发生。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你可以这样做来隐藏天文台:

// We are in your Activity:

final View chronometer= findViewById(R.id.chronometer);

chronometer.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        chronometer.setVisibility(View.GONE); 
        // Use View.INVISIBLE if you would like to keep the room for this view
    }
});

但不会再显示任何视图了。因此,根据用户应该单击以再次显示它的位置,您可能必须为视图和/或其文本提供与背景相同的颜色,而不是让它们不可见:

// should chronometer be a TextView that displays the time:

final TextView chronometer = (TextView) findViewById(R.id.chronometer);

chronometer.setOnClickListener(new View.OnClickListener() {
    private boolean mToggle = true;

    public void onClick(View v) {
        if (mToggle ) {
            chronometer.setTextColor(Color.BLACK); 
            mToggle = false;
        }
        else {
            chronometer.setTextColor(Color.WHITE); 
            mToggle = true;
        }
    }
});