Textview点击显示Imageview再次点击消失

实践要点:

①Imageview可见与不可见 textview.getVisibility(View.Visible)

②Textview点击事件监听 public void onClick(View v)

③Textview状态改变 textview.setTextColor(Color.WHITE)

                         textview.setBackgroundResource(R.drawable.image)    

                         textview.setBackgroundResource(R.color.black)  

这个代码实现的样式功能

1、点击一个背景是图片的textview出现对勾标记,再次点击对勾标记消失
2、当有一个及以上的对勾标记时确认按钮(textview)改变背景与文字颜色

3、当没有一个被标记时点击确定出现toast提

代码如下

xml主体部分(两个圆形图片是textview,对勾标志是imageview,确认按钮是textview)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/black"
    xmlns:android="http://schemas.android.com/apk/res/android">

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginTop="30dp">

            <LinearLayout
                android:orientation="vertical"
                android:id="@+id/liner"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginLeft="10.0dip"
                android:layout_marginTop="5.0dip"
                android:layout_marginRight="10.0dip">
                <TextView
                    android:id="@+id/r1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="20.0dip"
                    android:text="请选择一个或两个标志"
                    android:textColor="@color/white"
                    android:textSize="18sp" />
                <RelativeLayout
                    android:id="@+id/r2"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="40.0sp">

                    <TextView
                        android:id="@+id/one"
                        android:layout_width="98dp"
                        android:layout_height="98dp"
                        android:layout_alignParentLeft="true"
                        android:layout_marginLeft="52dp"
                        android:onClick="onClick"
                        android:background="@drawable/daiban1" />

                    <ImageView
                        android:id="@+id/bingo1"
                        android:layout_width="44dp"
                        android:layout_height="40dp"
                        android:layout_alignParentLeft="true"
                        android:layout_marginLeft="80dp"
                        android:layout_marginTop="25dp"
                        android:src="@drawable/dei"/>

                    <TextView
                        android:id="@+id/two"
                        android:layout_width="98dp"
                        android:layout_height="98dp"
                        android:layout_alignParentRight="true"
                        android:layout_marginRight="52dp"
                        android:onClick="onClick"
                        android:background="@drawable/yonghu2" />

                    <ImageView
                        android:id="@+id/bingo2"
                        android:layout_width="44dp"
                        android:layout_height="40dp"
                        android:layout_alignParentRight="true"
                        android:layout_marginRight="80dp"
                        android:layout_marginTop="25dp"
                        android:src="@drawable/dei"/>

                </RelativeLayout>

                <TextView
                    android:id="@+id/wancheng"
                    android:layout_marginTop="70dp"
                    android:layout_width="234dp"
                    android:layout_height="44dp"
                    android:background="@drawable/fillet_bg"
                    android:text="确定"
                    android:textColor="@color/black"
                    android:textSize="14dp"
                    android:layout_below="@id/liner"
                    android:layout_centerHorizontal="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:onClick="onClick"
                    android:layout_alignParentBottom="true" />

            </LinearLayout>
        </RelativeLayout>
</RelativeLayout>

其中@drawable/fillet_bg是我在drawable里自定义的圆角矩形背景样式,代码如下
后面用到的fillet_bg2是改了背景颜色边框颜色的fillet_bg,代码没有什么区别

 
 
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <solid android:color="@color/gray" />
            <corners android:radius="10.0dip" />
            <padding android:left="2.0dip" android:top="2.0dip" android:right="2.0dip" android:bottom="2.0dip" />
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/gray" />
            <corners android:radius="10.0dip" />
        </shape>
    </item>
</selector>

之后是MainActivity逻辑代码

import android.content.Intent;
import android.graphics.Color;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private ImageView bingo1;
    private ImageView bingo2;
    private TextView one;
    private TextView two;
    private TextView wancheng;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bingo1 = (ImageView)findViewById(R.id.bingo1);
        bingo2 = (ImageView)findViewById(R.id.bingo2);

        bingo1.setVisibility(View.GONE);
        bingo2.setVisibility(View.GONE);//一开始设置图片不可见
        one = (TextView)findViewById(R.id.one);
        two = (TextView)findViewById(R.id.two);
        wancheng = (TextView)findViewById(R.id.wancheng);
        //  dog.setOnClickListener(this);
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }
    }
    //点击事件监听
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.one:
                if ( bingo1.getVisibility() == View.GONE  ){
                    //当点击时对购标志由不可见变为可见
                    bingo1.setVisibility(View.VISIBLE);
                    break;
                }
                else
                    bingo1.setVisibility(View.GONE);
                break;
            case R.id.two:
                if ( bingo2.getVisibility() == View.GONE  ){
                    bingo2.setVisibility(View.VISIBLE);
                    break;
                }
                else
                    bingo2.setVisibility(View.GONE);
                break;

            case R.id.wancheng:
                //当至少有一个对勾标选时可以实现跳转
                if(bingo1.getVisibility() == View.VISIBLE || bingo2.getVisibility() == View.VISIBLE){
                    Intent intent = new Intent(MainActivity.this, Pet_information.class);
                    startActivity(intent);
                    break;
                }else{
                    //当没有对勾标选时toast提示选择
                    Toast.makeText(getApplicationContext(), "请点击选择至少一项", Toast.LENGTH_LONG).show();
                    break;
                }


        }
        //当有标选时改变确定按钮的背景颜色和字体颜色
        if(bingo1.getVisibility() == View.VISIBLE || bingo2.getVisibility() == View.VISIBLE){
            wancheng.setTextColor(Color.WHITE);
            wancheng.setBackgroundResource(R.drawable.fillet_bg2);//当背景是引用图片时为此,单纯颜色时用R.color
        }
        else{
            wancheng.setTextColor(Color.BLACK);
            wancheng.setBackgroundResource(R.drawable.fillet_bg);
        }
    }

}
 
 

猜你喜欢

转载自blog.csdn.net/haiyinshushe/article/details/81019178