ChangeScreenAreaPopupWindow.java 5.5 KB
package com.cnlive.goldenline.ui.widget;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.cnlive.goldenline.R;
import com.cnlive.goldenline.util.CharsequencePharse;
import com.cnlive.goldenline.util.ResLoader;

/**
 * Description:重磅预约 更改选区 弹框
 * Created on 2017/3/18
 * Author : 萧
 */
public class ChangeScreenAreaPopupWindow extends PopupWindow {

    private TextView tv_a;
    private TextView tv_b;
    private TextView tv_c;
    private TextView tv_d;
    private TextView tv_e;
    private SparseArray<Integer> textsizes;
    private SparseArray<Integer> colors;

    private int currentArea = 0;

    private int selectedBgRes;
    private int normalBgRes;

    public ChangeScreenAreaPopupWindow(Context context) {
        View view = LayoutInflater.from(context).inflate(R.layout.layout_changetheatrearea_pop, null);
        view.setAnimation(AnimationUtils.loadAnimation(context, R.anim.pop_topenter_anim));
        this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        ColorDrawable cd = new ColorDrawable(Color.WHITE);
        this.setBackgroundDrawable(cd);
        this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
        this.setFocusable(true);
        this.setContentView(view);
        this.setOutsideTouchable(false);
        this.setAnimationStyle(R.style.popup_anim_top);

        selectedBgRes = R.drawable.rectangle_f8b451;
        normalBgRes = R.drawable.rectangle_c5c5c5;

        colors = new SparseArray<>();
        colors.put(1, ResLoader.Color(context, R.color.color_333));
        colors.put(2, Color.parseColor("#727272"));
        colors.put(3, Color.parseColor("#f8b551"));
        textsizes = new SparseArray<>();
        textsizes.put(1, 13);
        textsizes.put(2, 10);
        textsizes.put(3, 9);

        tv_a = (TextView) view.findViewById(R.id.theatrearea_tv_a);
        tv_b = (TextView) view.findViewById(R.id.theatrearea_tv_b);
        tv_c = (TextView) view.findViewById(R.id.theatrearea_tv_c);
        tv_d = (TextView) view.findViewById(R.id.theatrearea_tv_d);
        tv_e = (TextView) view.findViewById(R.id.theatrearea_tv_e);
        tv_a.setText(CharsequencePharse.init().setColors(colors).setTextSizes(textsizes).setContents(formatContents("A区", 12, 100, 38)).format());
        tv_b.setText(CharsequencePharse.init().setColors(colors).setTextSizes(textsizes).setContents(formatContents("B区", 12, 100, 38)).format());
        tv_c.setText(CharsequencePharse.init().setColors(colors).setTextSizes(textsizes).setContents(formatContents("C区", 12, 100, 38)).format());
        tv_d.setText(CharsequencePharse.init().setColors(colors).setTextSizes(textsizes).setContents(formatContents("D区", 12, 100, 38)).format());
        tv_e.setText(CharsequencePharse.init().setColors(colors).setTextSizes(textsizes).setContents(formatContents("E区", 12, 100, 38)).format());

        tv_a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeBg(0);
            }
        });
        tv_b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeBg(1);
            }
        });
        tv_c.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeBg(2);
            }
        });
        tv_d.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeBg(3);
            }
        });
        tv_e.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeBg(4);
            }
        });


    }

    private SparseArray formatContents(String title, int currentSeats, int seatCount, int price) {
        SparseArray<String> contents = new SparseArray<>();
        contents.put(1, title + "\n");
        contents.put(2, currentSeats + "/" + seatCount + "\n");
        contents.put(3, "金币 " + price);
        return contents;
    }

    private void changeBg(int desArea) {
        if (currentArea == desArea) return;
        switch (currentArea) {
            case 0:
                tv_a.setBackgroundResource(normalBgRes);
                break;
            case 1:
                tv_b.setBackgroundResource(normalBgRes);
                break;
            case 2:
                tv_c.setBackgroundResource(normalBgRes);
                break;
            case 3:
                tv_d.setBackgroundResource(normalBgRes);
                break;
            case 4:
                tv_e.setBackgroundResource(normalBgRes);
                break;
        }

        switch (desArea) {
            case 0:
                tv_a.setBackgroundResource(selectedBgRes);
                break;
            case 1:
                tv_b.setBackgroundResource(selectedBgRes);
                break;
            case 2:
                tv_c.setBackgroundResource(selectedBgRes);
                break;
            case 3:
                tv_d.setBackgroundResource(selectedBgRes);
                break;
            case 4:
                tv_e.setBackgroundResource(selectedBgRes);
                break;
        }


        currentArea = desArea;
    }

}