MainActivity.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package com.example.mytest;
  2. import android.app.Activity;
  3. import android.graphics.Bitmap;
  4. import android.graphics.Color;
  5. import android.os.Bundle;
  6. import android.text.TextUtils;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.Button;
  10. import android.widget.ImageView;
  11. import android.widget.LinearLayout;
  12. import android.widget.TextView;
  13. import org.json.JSONArray;
  14. import org.json.JSONObject;
  15. import org.w3c.dom.Text;
  16. public class MainActivity extends Activity implements Interface {
  17. private Interface context;
  18. @Override
  19. public void Main(final JSONArray array) {
  20. runOnUiThread(new Runnable() {
  21. @Override
  22. public void run() {
  23. LinearLayout news = findViewById(R.id.newContainer);
  24. try {
  25. for (int i = array.length()-1; i >= 0; i--) {
  26. JSONObject o = array.getJSONObject(i);
  27. // Контейнер под 1 новость
  28. LinearLayout newsContainer = new LinearLayout(getApplicationContext());
  29. LinearLayout.LayoutParams newsContainerLayout =
  30. new LinearLayout.LayoutParams(
  31. LinearLayout.LayoutParams.MATCH_PARENT,
  32. LinearLayout.LayoutParams.WRAP_CONTENT);
  33. newsContainerLayout.bottomMargin = 20;
  34. newsContainer.setLayoutParams(newsContainerLayout);
  35. newsContainer.setBackgroundColor(Color.WHITE);
  36. newsContainer.setOrientation(LinearLayout.VERTICAL);
  37. // Заголовок новости
  38. TextView caption = new TextView(getApplicationContext());
  39. LinearLayout.LayoutParams captionLayout =
  40. new LinearLayout.LayoutParams(
  41. LinearLayout.LayoutParams.MATCH_PARENT,
  42. LinearLayout.LayoutParams.WRAP_CONTENT);
  43. captionLayout.setMargins(20, 20, 20, 20);
  44. caption.setLayoutParams(captionLayout);
  45. caption.setTextSize(20);
  46. caption.setText(o.getString("Caption"));
  47. caption.setPadding(0, 20, 0, 20);
  48. caption.setTextColor(Color.rgb(50,50,50));
  49. newsContainer.addView(caption);
  50. // Текст новости
  51. TextView preview = new TextView(getApplicationContext());
  52. LinearLayout.LayoutParams previewLayout =
  53. new LinearLayout.LayoutParams(
  54. LinearLayout.LayoutParams.MATCH_PARENT,
  55. LinearLayout.LayoutParams.WRAP_CONTENT
  56. );
  57. previewLayout.setMargins(20, 50, 20, 20);
  58. preview.setLayoutParams(previewLayout);
  59. preview.setText(o.getString("Preview"));
  60. preview.setTextColor(Color.BLACK);
  61. preview.setMaxLines(6);
  62. preview.setEllipsize(TextUtils.TruncateAt.END);
  63. newsContainer.addView(preview);
  64. ImageView image = new ImageView(getApplicationContext());
  65. LinearLayout.LayoutParams imageLayout =
  66. new LinearLayout.LayoutParams(
  67. LinearLayout.LayoutParams.MATCH_PARENT,
  68. 600
  69. );
  70. image.setLayoutParams(imageLayout);
  71. image.setScaleType(ImageView.ScaleType.CENTER_CROP);
  72. newsContainer.addView(image);
  73. new ImageDownload(o.getString("Image"), image, context).start();
  74. news.addView(newsContainer);
  75. }
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. }
  79. }
  80. });
  81. }
  82. @Override
  83. public void SetImage(final ImageView img, final Bitmap src) {
  84. runOnUiThread(new Runnable() {
  85. @Override
  86. public void run() {
  87. img.setImageBitmap(src);
  88. }
  89. });
  90. }
  91. @Override
  92. protected void onCreate(Bundle savedInstanceState) {
  93. super.onCreate(savedInstanceState);
  94. setContentView(R.layout.activity_main);
  95. context = this;
  96. Button button = findViewById(R.id.button);
  97. button.setOnClickListener(new View.OnClickListener() {
  98. @Override
  99. public void onClick(View view) {
  100. API api = new API();
  101. api.url = "https:/ktk-45.ru/news";
  102. api.param = "{\"Page\": 0,\"Limit\": 10}";
  103. api.context = context;
  104. api.start();
  105. }
  106. });
  107. }
  108. }