如何在android eclipse项目中从右向左键入字母

如何在android eclipse项目中从右向左键入字母,android,eclipse,Android,Eclipse,我正在尝试重新创建一个应用程序(让我猜个谜) 键入响应时,响应从左到右开始 我希望它从右到左开始 答案是阿拉伯语,所以必须从右到左 这就是答案的输入方式 我想把它打成这样 这是我的activity.java package com.gkcrop.riddlemethat; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileO

我正在尝试重新创建一个应用程序(让我猜个谜) 键入响应时,响应从左到右开始 我希望它从右到左开始 答案是阿拉伯语,所以必须从右到左

这就是答案的输入方式

我想把它打成这样

这是我的activity.java

package com.gkcrop.riddlemethat;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.media.SoundPool;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.StrictMode;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.loopj.android.image.SmartImageView;


@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressLint("NewApi")
public class TheGame extends Activity {
    // Variables
    InterstitialAd interstitial;
    private Button[] word_btn;
    private String lvl = "0";
    private String coins = "0";
    private String[] chars = { "ا", "ب", "ت", "ث", "د", "ذ", "ر", "ز", "س","ش", "ص", "ض", "ط", "ظ", "ع", "غ", "ف", "ق", "ك", "م", "ن", "ه","و", "ي", "ة", "ئ" };
    private String[] word_array;
    private String theWord = "999";
    private String resultWord = "";
    public Button[] randBtn;

    Context mContext;
    String TextFile,Ribbon;
    TextView txt_ribon,txt_riddle;

    Button btn_first,btn_bomb,btn_skip,btn_back,btn_ask;
    boolean isLast=false;
    StringBuilder sb;
    private int winSound;
    private int failureSound;
    private int clickSound;
    SoundPool sounds;
    EarnCoin coin;
    public TheGame() {
        // TODO Auto-generated constructor stub

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {

        if (Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= 9) {
            try {
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
                StrictMode.setThreadPolicy(policy);
            } catch (Exception e) {
            }
        }

        super.onCreate(savedInstanceState);
        setContentView(R.layout.game_layout);
        coin=new EarnCoin(getApplicationContext());
        initSounds();
        mContext=TheGame.this;
        sb = new StringBuilder();
        sb.append(Environment.getExternalStorageDirectory().toString()).append(File.separator).append(getString(R.string.app_name));

        txt_ribon=(TextView)findViewById(R.id.txt_ribon);
        txt_riddle=(TextView)findViewById(R.id.txt_riddle);
        btn_first=(Button)findViewById(R.id.button5);
        btn_bomb=(Button)findViewById(R.id.button4);
        btn_skip=(Button)findViewById(R.id.button3);
        btn_back=(Button)findViewById(R.id.button1);
        btn_ask=(Button)findViewById(R.id.button6);

        AdView adView = (AdView) this.findViewById(R.id.adView);
        adView.loadAd(new AdRequest.Builder().build());


        // 12 orange buttons where appear letters of the word, and other letters
        randBtn = new Button[] { (Button) findViewById(R.id.char1),
                (Button) findViewById(R.id.char2),
                (Button) findViewById(R.id.char3),
                (Button) findViewById(R.id.char4),
                (Button) findViewById(R.id.char5),
                (Button) findViewById(R.id.char6),
                (Button) findViewById(R.id.char7),
                (Button) findViewById(R.id.char8),
                (Button) findViewById(R.id.char9),
                (Button) findViewById(R.id.char10),
                (Button) findViewById(R.id.char11),
                (Button) findViewById(R.id.char12) };
        Intent intent = getIntent();
        lvl = readData().split("\\|")[0];
        coins = readData().split("\\|")[1];
        if (Integer.parseInt(coins) < 0) {
            coins = "0";
        }
        parseXML(Integer.parseInt(lvl)-1);

        if(!isLast)
        {

            txt_riddle.setText(TextFile);
            txt_ribon.setText(Ribbon);
            word_array = getWord(theWord);
            createWord(word_array.length);
            randomChars();
            TextView lvl_txt = (TextView) findViewById(R.id.textView2);
            lvl_txt.setText(" " + lvl + " ");
            TextView coins_txt = (TextView) findViewById(R.id.textView1);
            coins_txt.setText(coins);
        }
        else
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle(getString(R.string.reset_msg_1));
            builder.setMessage(getString(R.string.reset_msg_2));
            builder.setIcon(R.drawable.ic_launcher);
            builder.setPositiveButton(getString(R.string.ok),
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    TheGame.this.finish();
                }
            });
            builder.setNegativeButton(getString(R.string.reset_title),
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    writeData(getString(R.string.point_give));
                    dialog.dismiss();
                    TheGame.this.finish();
                }
            });
            AlertDialog alert = builder.create();
            alert.setCancelable(false);
            alert.show();
        }



        btn_first.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                        case DialogInterface.BUTTON_POSITIVE:
                            if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_first_letter))) {
                                btn_first.setVisibility(View.INVISIBLE);
                                coins = "" + (Integer.parseInt(coins) - Integer.parseInt(getString(R.string.how_much_for_first_letter)));
                                TextView coins_txt = (TextView) findViewById(R.id.textView1);
                                coins_txt.setText(coins);
                                writeData("" + (Integer.parseInt(lvl)) + "|"
                                        + (Integer.parseInt(coins)));
                                word_btn[0].setText(word_array[0].toUpperCase());
                                word_btn[0].setOnClickListener(null);
                                for (int i = 0; i < 12; i++) {
                                    if (randBtn[i].getText().equals(
                                            word_array[0].toUpperCase())) {
                                        randBtn[i]
                                                .setVisibility(View.INVISIBLE);
                                        i = 12;
                                    }
                                }
                            }
                            break;

                        case DialogInterface.BUTTON_NEGATIVE:
                            break;
                        }
                    }
                };

                // Check if sufficient coins
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        TheGame.this);
                builder.setTitle(getString(R.string.first_letter_msg_3)).setIcon(
                        R.drawable.help);
                if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_first_letter))) {
                    builder.setMessage(getString(R.string.first_letter_msg_1));
                    builder.setNegativeButton(getString(R.string.no), dialogClickListener)
                    .setPositiveButton(getString(R.string.yes), dialogClickListener)
                    .show();
                } else {
                    builder.setMessage(getString(R.string.first_letter_msg_2));
                    builder.setNegativeButton(getString(R.string.ok), dialogClickListener)
                    .show();
                }

            }
        });

        btn_bomb.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                        case DialogInterface.BUTTON_POSITIVE:
                            if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_bomb))) {
                                btn_bomb.setVisibility(View.INVISIBLE);
                                coins = "" + (Integer.parseInt(coins) - Integer.parseInt(getString(R.string.how_much_for_bomb)));
                                TextView coins_txt = (TextView) findViewById(R.id.textView1);
                                coins_txt.setText(coins);
                                writeData("" + (Integer.parseInt(lvl)) + "|"
                                        + (Integer.parseInt(coins)));
                                remove3Chars();
                            }
                            break;

                        case DialogInterface.BUTTON_NEGATIVE:
                            break;
                        }
                    }
                };

                // Check if sufficient coins
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        TheGame.this);
                builder.setTitle(getString(R.string.bomb_msg_3)).setIcon(R.drawable.help);
                if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_bomb))) {
                    builder.setMessage(getString(R.string.bomb_msg_1));
                    builder.setNegativeButton(getString(R.string.no), dialogClickListener)
                    .setPositiveButton(getString(R.string.yes), dialogClickListener)
                    .show();
                } else {
                    builder.setMessage(getString(R.string.bomb_msg_2));
                    builder.setNegativeButton(getString(R.string.ok), dialogClickListener)
                    .show();
                }
            }
        });

        btn_skip.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                        case DialogInterface.BUTTON_POSITIVE:
                            if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_skip))) {
                                btn_skip.setVisibility(View.INVISIBLE);
                                coins = "" + (Integer.parseInt(coins) - Integer.parseInt(getString(R.string.how_much_for_skip)));
                                TextView coins_txt = (TextView) findViewById(R.id.textView1);
                                coins_txt.setText(coins);
                                writeData("" + (Integer.parseInt(lvl) + 1) + "|"
                                        + (Integer.parseInt(coins)));
                                finish();
                                startActivity(getIntent());
                            }
                            break;
                        case DialogInterface.BUTTON_NEGATIVE:
                            break;
                        }
                    }
                };

                // Check if sufficient coins
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        TheGame.this);
                builder.setTitle(getString(R.string.skip_msg_3)).setIcon(R.drawable.help);
                if (Integer.parseInt(coins) >= Integer.parseInt(getString(R.string.how_much_for_skip))) {
                    builder.setMessage(getString(R.string.skip_msg_1));
                    builder.setNegativeButton(getString(R.string.no), dialogClickListener)
                    .setPositiveButton(getString(R.string.yes), dialogClickListener)
                    .show();
                } else {
                    builder.setMessage(getString(R.string.skip_msg_2));
                    builder.setNegativeButton(getString(R.string.ok), dialogClickListener)
                    .show();
                }
            }
        });


        if (Integer.parseInt(lvl) % Integer.parseInt(getString(R.string.number_of_stage_ad)) == 0) {
            interstitial = new InterstitialAd(this);
            interstitial.setAdUnitId(getString(R.string.admob_intertestial_id));
            interstitial.loadAd(new AdRequest.Builder().build());
            interstitial.show();
            if (!interstitial.isLoaded()) {
                AdRequest adRequest1 = new AdRequest.Builder()
                .build();
                // Begin loading your interstitial.
                interstitial.loadAd(adRequest1);
            }
            interstitial.setAdListener(new AdListener() {
                @Override
                public void onAdLoaded() {
                    super.onAdLoaded();
                    interstitial.show();
                }
            });
        } 

        btn_back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                onBackPressed();
            }
        });

        btn_ask.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                String path=SaveBackground();
                File imagepath=new File(path);
                Intent share = new Intent(Intent.ACTION_SEND);
                share.setType("image/png");
                share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imagepath));
                startActivity(Intent.createChooser(share, "Share Image"));

            }
        });
    }

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

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    }

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

    private void initSounds()
    {
        setVolumeControlStream(3);
        sounds = new SoundPool(4, 3, 0);
        winSound = sounds.load(this,R.raw.win, 1);
        failureSound = sounds.load(this, R.raw.failure, 1);
        clickSound = sounds.load(this, R.raw.click2, 1);
    }

    private void playSound(int i)
    {
        if (coin.isSoundEnabled())
        {
            sounds.play(i, 1.0F, 1.0F, 0, 0, 1.0F);
        }
    }

    // Function that generate black squares, depending on the number of letters
    // in the word
    private void createWord(int length) {
        LinearLayout world_layout = (LinearLayout) findViewById(R.id.world_layout);
        LayoutParams param = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, length);

        word_btn = new Button[length];

        for (int i = 0; i < length; i++) {
            word_btn[i] = new Button(getApplicationContext());
            word_btn[i].setText("");
            word_btn[i].setId(i);
            word_btn[i].setTextColor(Color.parseColor("#ffffff"));
            word_btn[i].setTextSize(20);
            word_btn[i].setTypeface(Typeface.DEFAULT_BOLD);
            word_btn[i].setLayoutParams(param);
            word_btn[i].setBackgroundResource(R.drawable.matchbox);
            world_layout.addView(word_btn[i]);
            word_btn[i].setOnClickListener(charOnClick(word_btn[i]));
        }
    }

    // Function that generate random letters + word's leter on orange buttons
    private void randomChars() {
        for (int i = 0; i < 12; i++) {
            randBtn[i].setOnClickListener(randCharClick(randBtn[i]));
            Random r = new Random();
            int i1 = r.nextInt(25 - 0) + 0;
            randBtn[i].setText(chars[i1]);
        }

        List<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < 12; i++) {
            list.add(i);
        }

        Collections.shuffle(list);

        for (int x = 0; x < word_array.length; x++) {
            int value = list.remove(0);
            randBtn[value].setText(word_array[x].toUpperCase());
        }
    }

    // Fuction that clear wrong letter from black squares
    private OnClickListener charOnClick(final Button button) {
        return new View.OnClickListener() {
            public void onClick(View v) {
                for (int i = 0; i < 12; i++) {
                    if (randBtn[i].getVisibility() == View.INVISIBLE
                            && randBtn[i].getText() == button.getText())
                        randBtn[i].setVisibility(View.VISIBLE);
                }

                button.setText("");

            }
        };
    }

    // Function for orange buttons
    private OnClickListener randCharClick(final Button btn) {
        return new View.OnClickListener() {
            public void onClick(View v) {
                playSound(clickSound);
                v.setVisibility(View.INVISIBLE);
                for (int i = 0; i < word_array.length; i++) {
                    if (word_btn[i].getText() == "") {
                        word_btn[i].setText(btn.getText());
                        i = word_array.length;
                    }
                }
                createResult();
            }
        };
    }

    // Function that check if the word is correct and showing correct/wrong
    // dialog
    private void createResult() {
        resultWord = "";
        for (int i = 0; i < word_array.length; i++) {
            if (word_btn[i].getText() != "") {
                resultWord += word_btn[i].getText();
            }
        }

        if (resultWord.length() == word_array.length) {
            if (resultWord.equalsIgnoreCase(theWord)) {
                showMyDialog(1, null);
            } else {
                showMyDialog(2, null);
            }
        }
    }

    // Function that transform the word to array
    private String[] getWord(String str) {
        String[] chars = str.split("");
        List<String> selected_chars = new ArrayList<String>();
        for (int i = 0; i < chars.length; i++) {
            selected_chars.add(chars[i]);
        }
        selected_chars.remove(0);
        return selected_chars.toArray(new String[selected_chars.size()]);
    }

    // //Function that showing dialogs: correct, wrong or zooming image
    private void showMyDialog(final int type, String bmp) {
        final Dialog dialog = new Dialog(TheGame.this, R.style.dialogStyle);
        dialog.setContentView(R.layout.dialog);
        dialog.getWindow().getDecorView()
        .setBackgroundResource(R.drawable.dialog_bg);
        dialog.setCanceledOnTouchOutside(false);
        dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,
                LayoutParams.WRAP_CONTENT);
        String points = ""
                + ((new Random().nextInt(10 - 3) + 3) + word_array.length);
        SmartImageView image = (SmartImageView) dialog
                .findViewById(R.id.imageDialog);
        Button dialogBtn = (Button) dialog.findViewById(R.id.dialogBtn);
        TextView score = (TextView) dialog.findViewById(R.id.points);

        if (type == 1) {
            playSound(winSound);
            image.setImageResource(R.drawable.corect);
            dialogBtn.setText(" Continue "); // Next level button
            score.setText("+" + points);
            writeData("" + (Integer.parseInt(lvl) + 1) + "|"
                    + (Integer.parseInt(coins) + Integer.parseInt(points)));
        } else if (type == 2) {
            playSound(failureSound);
            image.setImageResource(R.drawable.gresit);
            dialogBtn.setText("  Try Again  "); // Try again button, restart
            // current level
            score.setText("-5");
            if (Integer.parseInt(coins) > 0 && Integer.parseInt(coins) <= 5) {
                writeData("" + (Integer.parseInt(lvl)) + "|"
                        + (Integer.parseInt("0")));
            } else {
                writeData("" + (Integer.parseInt(lvl)) + "|"
                        + (Integer.parseInt(coins) - 5));
            }
        } else {
            dialog.getWindow().setBackgroundDrawable(
                    new ColorDrawable(android.graphics.Color.TRANSPARENT));
            score.setVisibility(View.GONE);
            dialogBtn.setVisibility(View.GONE);
            ImageView coinicon = (ImageView) dialog
                    .findViewById(R.id.dialogIcon);
            coinicon.setVisibility(View.GONE);
            image.setImageUrl(bmp);
            image.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
        }

        dialog.show();

        dialogBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (type > 0) {
                    finish();
                    startActivity(getIntent());
                }
                dialog.dismiss();
            }
        });

    }
    //      // Button that open "Share on Facebook" dialog
    //      fb.setOnClickListener(new OnClickListener() {
    //          @Override
    //          public void onClick(View v) {
    //              ByteArrayOutputStream stream = new ByteArrayOutputStream();
    //              getBitmapFromView().compress(Bitmap.CompressFormat.PNG, 100,
    //                      stream);
    //              byte[] byteArray = stream.toByteArray();
    ////                Intent i = new Intent(TheGame.this, LoginFragment.class);
    ////                i.putExtra("image", byteArray);
    ////                i.putExtra("lvl", lvl);
    ////                startActivity(i);
    //              dialog.dismiss();
    //          }
    //      });


    // Function that save all user data. Current level, coins
    private void writeData(String dataStr) {
        try {
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(
                    openFileOutput("thewords.dat", Context.MODE_PRIVATE));
            outputStreamWriter.write(dataStr);
            outputStreamWriter.close();
        } catch (IOException e) {
        }
    }

    // Function that read user data
    private String readData() {
        String ret = "";
        try {
            InputStream inputStream = openFileInput("thewords.dat");
            if (inputStream != null) {
                InputStreamReader inputStreamReader = new InputStreamReader(
                        inputStream);
                BufferedReader bufferedReader = new BufferedReader(
                        inputStreamReader);
                String receiveString = "";
                StringBuilder stringBuilder = new StringBuilder();
                while ((receiveString = bufferedReader.readLine()) != null) {
                    stringBuilder.append(receiveString);
                }
                inputStream.close();
                ret = stringBuilder.toString();
            }
        } catch (FileNotFoundException e) {
        } catch (IOException e) {
        }
        return ret;
    }



    // Function that hide 3 orange buttons (letters)
    public void remove3Chars() {
        Button[] removeBtn = { (Button) findViewById(R.id.char1),
                (Button) findViewById(R.id.char2),
                (Button) findViewById(R.id.char3),
                (Button) findViewById(R.id.char4),
                (Button) findViewById(R.id.char5),
                (Button) findViewById(R.id.char6),
                (Button) findViewById(R.id.char7),
                (Button) findViewById(R.id.char8),
                (Button) findViewById(R.id.char9),
                (Button) findViewById(R.id.char10),
                (Button) findViewById(R.id.char11),
                (Button) findViewById(R.id.char12) };
        int x = 0;
        List<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < 12; i++) {
            list.add(i);
        }
        Collections.shuffle(list);
        while (x != 3) {
            int value = list.remove(0);
            if (!Arrays.asList(word_array).contains(
                    removeBtn[value].getText().toString().toUpperCase())) {
                removeBtn[value].setVisibility(View.INVISIBLE);
                x += 1;

            }
        }
    }

    private void parseXML(int i) {
        AssetManager assetManager = getBaseContext().getAssets();
        try {
            InputStream is = assetManager.open("LevelData.xml");
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            XMLReader xr = sp.getXMLReader();

            LevelSAXParserHandler myXMLHandler = new LevelSAXParserHandler();
            xr.setContentHandler(myXMLHandler);
            InputSource inStream = new InputSource(is);
            xr.parse(inStream);

            ArrayList<Level> cartList = myXMLHandler.getCartList();
            if(i>=cartList.size())
            {   
                isLast=true;
            }
            else
            {
                Level level=cartList.get(i); 
                theWord=level.getAnswer();
                TextFile=level.getTextId();
                Ribbon=level.getRibbon();

            }
            is.close();
        } catch (Exception e) {
            e.printStackTrace(); 
        }
    }

    public String SaveBackground()
    {
        Bitmap bitmap;
        RelativeLayout panelResult = (RelativeLayout) findViewById(R.id.root);
        panelResult.invalidate();
        panelResult.setDrawingCacheEnabled(true);
        panelResult.buildDrawingCache();
        DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int i = displaymetrics.heightPixels;
        int j = displaymetrics.widthPixels;
        bitmap = Bitmap.createScaledBitmap(Bitmap.createBitmap(panelResult.getDrawingCache()), j, i, true);
        panelResult.setDrawingCacheEnabled(false);
        String s = null;
        File file;
        boolean flag;
        file = new File(sb.toString());
        flag = file.isDirectory();
        s = null;
        if (flag)
        {
        }
        file.mkdir();
        FileOutputStream fileoutputstream1 = null;
        s = (new StringBuilder(String.valueOf("guess"))).append("_sound_").append(System.currentTimeMillis()).append(".png").toString();
        try {
            fileoutputstream1 = new FileOutputStream(new File(file, s));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        FileOutputStream fileoutputstream = fileoutputstream1;

        StringBuilder stringbuilder1;
        bitmap.compress(android.graphics.Bitmap.CompressFormat.PNG, 100, fileoutputstream);
        stringbuilder1 = new StringBuilder();
        stringbuilder1.append(sb.toString()).append(File.separator).append(s);

        try {
            fileoutputstream.flush();
            fileoutputstream.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return ""+stringbuilder1;

    }
}
package com.gkcrop.methat;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.OutputStreamWriter;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.Collections;
导入java.util.LinkedList;
导入java.util.List;
导入java.util.Random;
导入javax.xml.parsers.SAXParser;
导入javax.xml.parsers.SAXParserFactory;
导入org.xml.sax.InputSource;
导入org.xml.sax.XMLReader;
导入android.annotation.SuppressLint;
导入android.annotation.TargetApi;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.app.Dialog;
导入android.content.Context;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.content.res.AssetManager;
导入android.graphics.Bitmap;
导入android.graphics.Color;
导入android.graphics.Typeface;
导入android.graphics.drawable.ColorDrawable;
导入android.graphics.drawable.drawable;
导入android.media.SoundPool;
导入android.net.Uri;
导入android.os.Build;
导入android.os.Bundle;
导入android.os.Environment;
导入android.os.StrictMode;
导入android.util.DisplayMetrics;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.ImageView;
导入android.widget.LinearLayout;
导入android.widget.LinearLayout.LayoutParams;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入com.google.android.gms.ads.AdListener;
导入com.google.android.gms.ads.AdRequest;
导入com.google.android.gms.ads.AdView;
导入com.google.android.gms.ads.alad;
导入com.loopj.android.image.SmartImageView;
@TargetApi(构建版本代码姜饼)
@SuppressLint(“新API”)
公共课游戏扩展了活动{
//变数
间质间质;
专用按钮[]字\u btn;
私有字符串lvl=“0”;
私人字符串硬币=“0”;
私有字符串[]字符={“ا”、“ب”、“ت”、“ث”、“د”、“ذ”、“ز”、“ش”、“ض”、“ط”、“ظ”、“ف”、“ق”、“ك”、“ن”、“ه”、“و”、“ي”、“㶡”、“ئ”};
私有字符串[]字数组;
私有字符串theWord=“999”;
私有字符串resultWord=“”;
公共按钮[]随机编号;
语境;
字符串文本文件,功能区;
TextView txt_核糖,txt_谜语;
按钮btn_优先,btn_炸弹,btn_跳过,btn_返回,btn_询问;
布尔isLast=false;
为某人做准备;
温桑德私人酒店;
私人内部故障声音;
私人声音;
声音池声音;
挣硬币;
公共游戏{
//TODO自动生成的构造函数存根
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
if(Integer.valueOf(android.os.Build.VERSION.SDK_INT)>=9){
试一试{
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(策略);
}捕获(例外e){
}
}
super.onCreate(savedInstanceState);
setContentView(R.layout.game_布局);
coin=新收入coin(getApplicationContext());
initSounds();
mContext=TheGame.this;
sb=新的StringBuilder();
sb.append(Environment.getExternalStorageDirectory().toString()).append(File.separator).append(getString(R.string.app_name));
txt_ribon=(TextView)findViewById(R.id.txt_ribon);
txt_-ridle=(TextView)findViewById(R.id.txt_-ridle);
btn_first=(按钮)findViewById(R.id.button5);
btn_bomb=(按钮)findViewById(R.id.button4);
btn_skip=(按钮)findViewById(R.id.button3);
btn_back=(按钮)findViewById(R.id.button1);
btn_ask=(按钮)findViewById(R.id.button6);
AdView AdView=(AdView)this.findviewbyd(R.id.AdView);
adView.loadAd(新的addRequest.Builder().build());
//12个橙色按钮,其中显示单词的字母和其他字母
randBtn=新按钮[]{(按钮)findViewById(R.id.char1),
(按钮)findViewById(R.id.char2),
(按钮)findViewById(R.id.char3),
(按钮)findViewById(R.id.char4),
(按钮)findViewById(R.id.char5),
(按钮)findViewById(R.id.char6),
(按钮)findViewById(R.id.char7),
(按钮)findViewById(R.id.char8),
(按钮)findViewById(R.id.char9),
(按钮)findViewById(R.id.char10),
(按钮)findViewById(R.id.char11),
(按钮)findviewbyd(R.id.char12)};
Intent=getIntent();
lvl=readData().split(“\\\\”)[0];
coins=readData().split(“\\\\”)[1];
if(整数.parseInt(硬币)<0){
硬币=“0”;
}
parseXML(Integer.parseInt(lvl)-1);
如果(!isLast)
{
txt_ridle.setText(文本文件);
txt_ribon.setText(色带);
word_数组=getWord(theWord);
createWord(单词数组长度);
随机字符();
TextView lvl_txt=(TextView)findViewById(R.id.textView2);
lvl_txt.setText(“+lvl+”);
TextView coins_txt=(TextView)findViewById(R.id.textView1);
coins_txt.setText(硬币);
}
其他的
{
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(getString(R.string.R