如何从资源文件夹中删除Android徽标

时间:2015-11-17 15:54:39

标签: java android

我一直在开发一款相当广泛的游戏,并且终于到了我可以解决最后几个问题的地方,并且稍微触摸了一下。然而,我似乎遇到了一个相当抽象的问题。程序的一部分创建了一副牌,其图形存储在我的res文件夹中。同样存储在此文件夹中的是Android徽标,默认设置在那里。这通常不会打扰我,但徽标显示为我牌组中的牌之一,持有王牌的价值。我试图从我的资源中删除徽标,但我的程序在执行此操作后将无法运行。我完全不知道为什么会这样。我已查看了所有代码,但无处调用徽标。有没有人有任何想法,我可以做些什么来解决这个问题?

我觉得这就是问题发生的地方:

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    Log.v("Blackjack", "On Create");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    m_player_bust = false;
    m_in_win = false;
    m_in_lose = false;
    m_hand_value = 0;
    m_dealer_value = 0;
    m_user_hand = new int[5];
    m_user_text = (TextView) findViewById(R.id.TextView01);
    m_user_text.setTextColor(Color.GREEN);
    m_dealer_text = (TextView) findViewById(R.id.TextView02);
    m_image = new ImageView[5];
    m_image[0] = (ImageView) findViewById(R.id.card_1);
    m_image[1] = (ImageView) findViewById(R.id.card_2);
    m_image[2] = (ImageView) findViewById(R.id.card_3);
    m_image[3] = (ImageView) findViewById(R.id.card_4);
    m_image[4] = (ImageView) findViewById(R.id.card_5);
    m_dealer_image = new ImageView[5];
    m_dealer_image[0] = (ImageView) findViewById(R.id.dealer_card_1);
    m_dealer_image[1] = (ImageView) findViewById(R.id.dealer_card_2);
    m_dealer_image[2] = (ImageView) findViewById(R.id.dealer_card_3);
    m_dealer_image[3] = (ImageView) findViewById(R.id.dealer_card_4);
    m_dealer_image[4] = (ImageView) findViewById(R.id.dealer_card_5);
    m_twist = (Button) findViewById(R.id.twist);
    m_twist.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            dealCard();
        }
    });
    m_stick = (Button) findViewById(R.id.stick);
    m_stick.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            dealerCards();
        }
    });
    final Button redeal = (Button) findViewById(R.id.redeal);
    redeal.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            reDeal();
        }
    });
    m_num_dealt = 0;
    m_user_text.setText("[Player] 0");
    m_dealer_text.setText("[Dealer] 0");
    // reset the state of the buttons
    m_twist.setClickable(false);
    m_twist.setTextColor(Color.GRAY);
    m_stick.setClickable(false);
    m_stick.setTextColor(Color.GRAY);
    m_deck = new CardDeck();
    m_deck.CreateDeck();
    if (savedInstanceState == null) {
    } else {
        Log.v("Backjack", "ReCreate");
        LoadState(savedInstanceState);
    }
}

@Override
public void onStart() {
    super.onStart();
}

public void reDeal() {
    if (m_deck.NeedShuffle()) {
        m_deck.Shuffle();
    }
    m_player_bust = false;
    m_num_dealt = 0;
    dealCard();
    dealCard();
    // reset the state of the buttons
    m_twist.setClickable(true);
    m_twist.setTextColor(Color.BLACK);
    m_stick.setClickable(true);
    m_stick.setTextColor(Color.BLACK);
    // reset the user text color
    m_user_text.setTextColor(Color.GREEN);
    m_dealer_text.setTextColor(Color.WHITE);
    // reset other cards
    m_image[2].setImageResource(R.drawable.back_blue);
    m_image[3].setImageResource(R.drawable.back_blue);
    m_image[4].setImageResource(R.drawable.back_blue);
    // reset other cards
    m_dealer_image[0].setImageResource(R.drawable.back_blue);
    m_dealer_image[1].setImageResource(R.drawable.back_blue);
    m_dealer_image[2].setImageResource(R.drawable.back_blue);
    m_dealer_image[3].setImageResource(R.drawable.back_blue);
    m_dealer_image[4].setImageResource(R.drawable.back_blue);
    // clear dealer text
    m_dealer_text.setText("[Dealer] 0");
}

@Override
public void onPause() {
    super.onPause();
    Log.v("Blackjack", "onPause() called");

}

@Override
public void onStop() {
    super.onStop();
    Log.v("Blackjack", "onStop() called");
}

@Override
public void onDestroy() {
    super.onDestroy();
    Log.v("Blackjack", "onDestroy() called");
}

public void dealCard() {
    int num_aces = 0;
    m_hand_value = 0;
    if (m_num_dealt < 5 && !m_player_bust) {
        // Get the next card
        m_user_hand[m_num_dealt] = m_deck.GetNextCard();
        m_image[m_num_dealt].setImageResource(m_deck
                .GetCardResource(m_user_hand[m_num_dealt]));
        m_num_dealt++;
        // calculate the value of the hand.
        for (int count = 0; count < m_num_dealt; count++) {
            if (m_deck.GetCardValue(m_user_hand[count]) == 11) {
                num_aces++;
            }
            m_hand_value += m_deck.GetCardValue(m_user_hand[count]);
        }
        // ACE adjust the value
        while (m_hand_value > 21 && num_aces > 0) {
            m_hand_value -= 10;
            num_aces--;
        }
        // Check for losery-ness.
        if (m_hand_value > 21) {
            // Loser :(
            m_twist.setClickable(false);
            m_twist.setTextColor(Color.GRAY);
            m_stick.setClickable(false);
            m_stick.setTextColor(Color.GRAY);
            m_user_text.setTextColor(Color.RED);
            m_player_bust = true;
            ShowLose();
        }
        String output = "[Player] " + m_hand_value.toString();
        m_user_text.setText(output);
    }
}

public void dealerCards() {
    int card;
    int num_aces = 0;
    int dealer_cards = 0;
    m_dealer_value = 0;
    m_dealer_text.setTextColor(Color.GREEN);
    m_twist.setClickable(false);
    m_twist.setTextColor(Color.GRAY);
    m_stick.setClickable(false);
    m_stick.setTextColor(Color.GRAY);
    while (m_dealer_value <= m_hand_value && dealer_cards < 5) {
        card = m_deck.GetNextCard();
        m_dealer_image[dealer_cards].setImageResource(m_deck
                .GetCardResource(card));
        dealer_cards++;
        if (m_deck.GetCardValue(card) == 11) {
            num_aces++;
        }
        // calculate the value of the dealers cards
        m_dealer_value += m_deck.GetCardValue(card);
        while (m_dealer_value > 21 && num_aces > 0) {
            m_dealer_value -= 10;
            num_aces--;
        }
        // display result
        String output = "[Dealer] " + m_dealer_value.toString();
        m_dealer_text.setText(output);
    }
    if (m_dealer_value > m_hand_value && m_dealer_value <= 21) {
        ShowLose();
    } else {
        if (m_dealer_value > 21) {
            m_dealer_text.setTextColor(Color.RED);
        }
        ShowWin();
    }
}

void ShowLose() {
    m_in_lose = true;
    m_user_text.setTextColor(Color.YELLOW);
    m_lose = new AlertDialog.Builder(this).setTitle("Loser!!!")
            .setMessage("You were trounced by the dealer :)")
            .setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    m_in_lose = false;
                }
            }).show();
}

void ShowWin() {
    m_in_win = true;
    m_win = new AlertDialog.Builder(this).setTitle("Winner!!")
            .setMessage("You beat the dealer!")
            .setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    m_in_win = false;
                }
            }).show();
}

@Override
public void onSaveInstanceState(Bundle state) {
    state.putInt("dealer_value", m_dealer_value);
    state.putInt("player_value", m_hand_value);
    state.putInt("num_cards", m_num_dealt);
    state.putBoolean("bust", m_player_bust);
    state.putBoolean("lose", m_in_lose);
    state.putBoolean("win", m_in_win);
    if (m_in_win && m_win != null) {
        m_win.dismiss();
    }
    if (m_in_lose && m_lose != null) {
        m_lose.dismiss();
    }
    if (m_user_hand != null) {
        state.putIntArray("player_hand", m_user_hand);
    }
    m_deck.SaveState(state);
    super.onSaveInstanceState(state);
}

public void LoadState(Bundle state) {
    m_dealer_value = state.getInt("dealer_value");
    m_hand_value = state.getInt("player_value");
    m_num_dealt = state.getInt("num_cards");
    m_player_bust = state.getBoolean("bust");
    m_in_lose = state.getBoolean("lose");
    m_in_win = state.getBoolean("win");
    m_user_hand = state.getIntArray("player_hand");
    m_deck.LoadState(state);
    // display the users cards.
    for (int count = 0; count < m_num_dealt; count++) {
        m_image[count].setImageResource(m_deck
                .GetCardResource(m_user_hand[count]));
    }
    // Set the text values
    m_user_text.setTextColor(Color.GREEN);
    String output = "[Player] " + m_hand_value.toString();
    m_user_text.setText(output);
    output = "[Dealer] " + m_dealer_value.toString();
    m_dealer_text.setText(output);
    if (m_in_win) {
        ShowWin();
    } else if (m_in_lose) {
        ShowLose();
    } else {
        // we are in a player mode
        m_twist.setClickable(true);
        m_twist.setTextColor(Color.BLACK);
        m_stick.setClickable(true);
        m_stick.setTextColor(Color.BLACK);
    }
}

}

1 个答案:

答案 0 :(得分:0)

由LarsH提供,我能够解决问题。我在Manifest.xml中引用了Android徽标