Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.baza.testbazanet;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.AsyncTask;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Base64;
- import android.widget.Button;
- import android.widget.TextView;
- import android.view.View;
- import android.view.View.OnClickListener;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.ProtocolException;
- import java.net.URL;
- public class MainActivity extends AppCompatActivity {
- private TextView view;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //инициализируем элементы управления
- Button button1 = findViewById(R.id.button1);
- Button button2 = findViewById(R.id.button2);
- Button button3 = findViewById(R.id.button3);
- view = findViewById(R.id.textView);
- //Создаем обработчик нажатия кнопки.
- OnClickListener listener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- //получаем значение параметра id из названия кнопки
- String text = new StringBuilder(((Button) findViewById(v.getId())).getText()).substring(6);
- //запускаем задание подключения к серверу в отдельном потоке
- new HttpRequestTask().execute(
- "http://baza.net/api.php",
- "method=testApp",
- "id=" + text);
- }
- };
- //присваиваем Listener всем кнопкам
- button1.setOnClickListener(listener);
- button2.setOnClickListener(listener);
- button3.setOnClickListener(listener);
- }
- //класс для обработки get-запросов в отдельном от GUI потоке
- public class HttpRequestTask extends AsyncTask<String, Void, String> {
- protected String doInBackground(String[] urls) {
- try {
- //когда нет URL для подключения
- if (urls.length == 0)
- return "Arguments not found!";
- //добавляем к URL параметры из аргументов
- String urlString = urls[0] + "?";
- for (int i = 1; i < urls.length; i++)
- urlString = urlString.
- concat(urls[i]).
- concat("&");
- urlString = urlString.substring(0, urlString.length() - 1);
- //выполняем get-запрос
- URL url = new URL(urlString);
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setReadTimeout(500);
- connection.setConnectTimeout(500);
- connection.setRequestMethod("GET");
- //получаем поток с ответом и считываем ответ построчно
- BufferedReader in = new BufferedReader(
- new InputStreamReader(connection.getInputStream()));
- StringBuilder answer = new StringBuilder("");
- String line;
- while ((line = in.readLine()) != null) {
- answer = answer.append(line);
- }
- in.close();
- return answer.toString();
- }
- catch (MalformedURLException e)
- {
- //Отображаем сообщение об ошибке
- return "An error occurred!";
- }
- catch (ProtocolException e)
- {
- //Отображаем сообщение об ошибке
- return "An error occurred!";
- }
- catch (IOException e)
- {
- //Нет интернета!!!!
- return "Server \"baza.net\" not found!";
- }
- }
- //обрабатываем строку с ответом
- protected void onPostExecute(String string) {
- //зашифрованное изображение
- if (string.startsWith("data:image/jpeg;base64")) {
- //расшифровываем изображение
- byte[] decodedByte = Base64.decode((string.substring(23)), Base64.DEFAULT);
- //декодируем изображение
- Bitmap bmp = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
- //удаляем старый текст
- view.setText("");
- //задаем фоновое изображение
- view.setBackgroundDrawable(new BitmapDrawable(getResources(), bmp));
- }
- //обычный текст
- else {
- //отображаем текст
- view.setText(string);
- //ставим пустое фоновое изображение
- view.setBackgroundDrawable(new BitmapDrawable());
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment