download and display background image

pull/1/head
Mateusz Lubecki 2021-01-04 07:48:51 +01:00
rodzic 5eee31fc41
commit 6bb505db54
12 zmienionych plików z 222 dodań i 25 usunięć

Wyświetl plik

@ -23,12 +23,12 @@ public class MainActivity extends AppCompatActivity {
AndroidThreeTen.init(this);
// Locale locale = new Locale("pl");
// Locale.setDefault(locale);
// Resources resources = this.getResources();
// Configuration config = resources.getConfiguration();
// config.setLocale(locale);
// resources.updateConfiguration(config, resources.getDisplayMetrics());
Locale locale = new Locale("pl");
Locale.setDefault(locale);
Resources resources = this.getResources();
Configuration config = resources.getConfiguration();
config.setLocale(locale);
resources.updateConfiguration(config, resources.getDisplayMetrics());
setContentView(R.layout.activity_main);

Wyświetl plik

@ -2,13 +2,16 @@ package cc.pogoda.mobile.pogodacc.activity;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.Image;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.Serializable;
import java.io.InputStream;
import cc.pogoda.mobile.pogodacc.R;
import cc.pogoda.mobile.pogodacc.activity.handler.StationDetailsActPlotsButtonClickEvent;
@ -29,10 +32,41 @@ public class StationDetailsActivity extends AppCompatActivity {
ImageButton plotsButton = null;
ImageButton windRoseButton = null;
ImageView topBackground = null;
StationDetailsActSummaryButtonClickEvent summaryClickEvent = null;
StationDetailsActPlotsButtonClickEvent plotsClickEvent = null;
StationDetailsActWindRoseButtonClickEvent windRoseClickEvent = null;
/**
* This class downloads the background JPG image from the internet and
*/
private class DownloadImage implements Runnable {
ImageView iv;
String image_url;
Bitmap bitmap;
public DownloadImage(ImageView background, String url) {
iv = background;
image_url = url;
}
@Override
public void run() {
try {
InputStream in = new java.net.URL(image_url).openStream();
bitmap = BitmapFactory.decodeStream(in);
iv.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public StationDetailsActivity() {
stationName = null;
}
@ -61,6 +95,21 @@ public class StationDetailsActivity extends AppCompatActivity {
stationLatLon = findViewById(R.id.textViewLatLon);
stationSponsorUrl = findViewById(R.id.textViewSponsorUrl);
// public static final int BLACK = -16777216;
// public static final int BLUE = -16776961;
// public static final int CYAN = -16711681;
// public static final int DKGRAY = -12303292;
// public static final int GRAY = -7829368;
// public static final int GREEN = -16711936;
// public static final int LTGRAY = -3355444;
// public static final int MAGENTA = -65281;
// public static final int RED = -65536;
// public static final int TRANSPARENT = 0;
// public static final int WHITE = -1;
// public static final int YELLOW = -256;
stationName.setTextColor(station.getStationNameTextColor());
if (station != null && stationName != null) {
summaryClickEvent = new StationDetailsActSummaryButtonClickEvent(station, this);
@ -70,12 +119,40 @@ public class StationDetailsActivity extends AppCompatActivity {
summaryButton = findViewById(R.id.imageButtonCurrent);
summaryButton.setOnClickListener(summaryClickEvent);
plotsButton = findViewById(R.id.imageButtonPlots);
plotsButton = findViewById(R.id.imageButtonPlotsWind);
plotsButton.setOnClickListener(plotsClickEvent);
windRoseButton = findViewById(R.id.imageButtonWindRose);
windRoseButton.setOnClickListener(windRoseClickEvent);
topBackground = findViewById(R.id.imageViewStationPng);
switch (station.getImageAlign()) {
case 0:
topBackground.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
break;
case 1:
topBackground.setScaleType(ImageView.ScaleType.FIT_START);
break;
case 2:
topBackground.setScaleType(ImageView.ScaleType.FIT_END);
break;
case 3:
topBackground.setScaleType(ImageView.ScaleType.CENTER);
break;
case 4:
topBackground.setScaleType(ImageView.ScaleType.MATRIX);
break;
case 5:
topBackground.setScaleType(ImageView.ScaleType.FIT_XY);
break;
case 6:
topBackground.setScaleType(ImageView.ScaleType.FIT_CENTER);
break;
default:
topBackground.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
stationName.setText(station.getDisplayedName());
stationLocation.setText(station.getDisplayedLocation());
@ -84,6 +161,11 @@ public class StationDetailsActivity extends AppCompatActivity {
stationSponsorUrl.setText(station.getSponsorUrl());
DownloadImage downloadImage = new DownloadImage(topBackground, station.getImageUrl());
Thread t = new Thread(downloadImage);
t.start();
//runOnUiThread(downloadImage);
if (station_lat > 0.0f && station_lon > 0.0f) {
// europe
sb.append(station_lon);

Wyświetl plik

@ -1,6 +1,5 @@
package cc.pogoda.mobile.pogodacc.dao;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
@ -61,6 +60,9 @@ public class AllStationsDao {
elem.setLat(def.lat);
elem.setLon(def.lon);
elem.setSponsorUrl(def.sponsorUrl);
elem.setImageUrl(def.backgroundJpg);
elem.setStationNameTextColor(def.stationNameTextColour);
elem.setImageAlign(def.backgroundJpgAlign);
out.add(elem);
}

Wyświetl plik

@ -60,6 +60,30 @@ public class WeatherStation implements Serializable {
this.systemName = systemName;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public int getStationNameTextColor() {
return stationNameTextColor;
}
public void setStationNameTextColor(int stationNameTextColor) {
this.stationNameTextColor = stationNameTextColor;
}
public int getImageAlign() {
return imageAlign;
}
public void setImageAlign(int imageAlign) {
this.imageAlign = imageAlign;
}
String systemName;
String displayedName;
@ -68,6 +92,12 @@ public class WeatherStation implements Serializable {
String sponsorUrl;
String imageUrl;
int imageAlign;
int stationNameTextColor;
float lat;
float lon;

Wyświetl plik

@ -6,6 +6,8 @@ public class StationDefinition {
public String name;
public int stationNameTextColour;
public boolean enabled;
public String callsign;
@ -18,9 +20,11 @@ public class StationDefinition {
public String sponsorUrl;
public String backgroundjpg;
public String backgroundJpg;
public String moreinfo;
public int backgroundJpgAlign;
public String moreInfo;
public float lat;

Wyświetl plik

@ -34,18 +34,19 @@
android:id="@+id/imageViewStationPng"
android:layout_width="408dp"
android:layout_height="232dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintVertical_bias="1.0"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
<TextView
android:id="@+id/textViewStationName"
android:layout_width="261dp"
android:layout_height="57dp"
android:layout_width="340dp"
android:layout_height="58dp"
android:layout_marginStart="16dp"
android:layout_marginTop="197dp"
android:layout_marginEnd="205dp"
@ -54,10 +55,10 @@
android:textSize="36sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/imageViewStationPng"
app:layout_constraintHorizontal_bias="0.216"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/imageViewStationPng"
app:layout_constraintTop_toTopOf="@+id/imageViewStationPng"
app:layout_constraintVertical_bias="1.0" />
app:layout_constraintVertical_bias="0.958" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -101,7 +102,7 @@
android:layout_height="611dp">
<ImageButton
android:id="@+id/imageButtonPlots"
android:id="@+id/imageButtonPlotsWind"
android:layout_width="176dp"
android:layout_height="180dp"
android:backgroundTint="#56039BE5"
@ -120,18 +121,18 @@
<TextView
android:id="@+id/textViewPlots"
android:layout_width="62dp"
android:layout_width="128dp"
android:layout_height="24dp"
android:layout_marginStart="55dp"
android:layout_marginTop="141dp"
android:layout_marginEnd="59dp"
android:layout_marginBottom="15dp"
android:text="@string/station_plots"
android:text="@string/wind_speed_plots"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="@+id/imageButtonPlots"
app:layout_constraintEnd_toEndOf="@+id/imageButtonPlots"
app:layout_constraintStart_toStartOf="@+id/imageButtonPlots"
app:layout_constraintTop_toTopOf="@+id/imageButtonPlots" />
app:layout_constraintBottom_toBottomOf="@+id/imageButtonPlotsWind"
app:layout_constraintEnd_toEndOf="@+id/imageButtonPlotsWind"
app:layout_constraintStart_toStartOf="@+id/imageButtonPlotsWind"
app:layout_constraintTop_toTopOf="@+id/imageButtonPlotsWind" />
<ImageButton
android:id="@+id/imageButtonCurrent"

Wyświetl plik

@ -52,4 +52,17 @@
<string name="warning">Warning!</string>
<string name="station_doesnt_transmit">Station doesn\'t transmit data</string>
<string name="for_longer_than_2_hours">for longer than 2 hours</string>
<string name="export_data">Export Data</string>
<string name="export_ln">Lenght in hours</string>
<string name="select_station_export">Select station to export</string>
<string name="start_data">Start date and time</string>
<string name="max_100_hours">Maximum 100 hours</string>
<string name="output_fn">Output file</string>
<string name="start_export">EXPORT</string>
<string name="output_export_format">Output file format</string>
<string name="last_data_timestamp">Time of last measurement</string>
<string name="wind_speed_plots">Wind Speed Plots</string>
<string name="wind_direction_plots">Wind Direction Plot</string>
<string name="temperature_plot">Temperature Plot</string>
<string name="humidity_plot">Humidity Plot</string>
</resources>

Wyświetl plik

@ -52,4 +52,17 @@
<string name="warning">-</string>
<string name="station_doesnt_transmit">-</string>
<string name="for_longer_than_2_hours">-</string>
<string name="export_data">-</string>
<string name="export_ln">-</string>
<string name="select_station_export">-</string>
<string name="start_data">-</string>
<string name="max_100_hours">-</string>
<string name="output_fn">-</string>
<string name="start_export">-</string>
<string name="output_export_format">-</string>
<string name="last_data_timestamp">-</string>
<string name="wind_speed_plots">-</string>
<string name="wind_direction_plots">-</string>
<string name="temperature_plot">-</string>
<string name="humidity_plot">-</string>
</resources>

Wyświetl plik

@ -52,5 +52,18 @@
<string name="warning">-</string>
<string name="station_doesnt_transmit">-</string>
<string name="for_longer_than_2_hours">-</string>
<string name="export_data">-</string>
<string name="export_ln">-</string>
<string name="select_station_export">-</string>
<string name="start_data">-</string>
<string name="max_100_hours">-</string>
<string name="output_fn">-</string>
<string name="start_export">-</string>
<string name="output_export_format">-</string>
<string name="last_data_timestamp">-</string>
<string name="wind_speed_plots">-</string>
<string name="wind_direction_plots">-</string>
<string name="temperature_plot">-</string>
<string name="humidity_plot">-</string>
</resources>

Wyświetl plik

@ -52,4 +52,17 @@
<string name="warning">Uwaga!</string>
<string name="station_doesnt_transmit">Stacja nie wysyła danych</string>
<string name="for_longer_than_2_hours">dłużej niż dwie godziny</string>
<string name="export_data">Eksport danych</string>
<string name="export_ln">Długość w godzinach</string>
<string name="select_station_export">Wybierz stację do eksportu</string>
<string name="start_data">Początkowa data i czas</string>
<string name="max_100_hours">Maksymalnie sto godzin</string>
<string name="output_fn">Plik wyjściowy</string>
<string name="start_export">Rozpocznij eksport</string>
<string name="output_export_format">Format pliku wyjściowego</string>
<string name="last_data_timestamp">Czas ostatniego pomiaru</string>
<string name="wind_speed_plots">Prędkość Wiatru</string>
<string name="wind_direction_plots">Kierunek Wiatru</string>
<string name="temperature_plot">Temperatura</string>
<string name="humidity_plot">Wilgotność</string>
</resources>

Wyświetl plik

@ -52,4 +52,17 @@
<string name="warning">Uwaga!</string>
<string name="station_doesnt_transmit">Stacja nie wysyła danych</string>
<string name="for_longer_than_2_hours">dłużej niż dwie godziny</string>
<string name="export_data">Eksport danych</string>
<string name="export_ln">Długość w godzinach</string>
<string name="select_station_export">Wybierz stację do eksportu</string>
<string name="start_data">Początkowa data i czas</string>
<string name="max_100_hours">Maksymalnie sto godzin</string>
<string name="output_fn">Plik wyjściowy</string>
<string name="start_export">Rozpocznij eksport</string>
<string name="output_export_format">Format pliku wyjściowego</string>
<string name="last_data_timestamp">Czas ostatniego pomiaru</string>
<string name="wind_speed_plots">Prędkość Wiatru</string>
<string name="wind_direction_plots">Kierunek Wiatru</string>
<string name="temperature_plot">Temperatura</string>
<string name="humidity_plot">Wilgotność</string>
</resources>

Wyświetl plik

@ -56,4 +56,17 @@
<string name="warning">Warning!</string>
<string name="station_doesnt_transmit">Station doesn\'t transmit data</string>
<string name="for_longer_than_2_hours">for longer than 2 hours</string>
<string name="export_data">Export Data</string>
<string name="export_ln">Lenght in hours</string>
<string name="select_station_export">Select station to export</string>
<string name="start_data">Start date and time</string>
<string name="max_100_hours">Maximum 100 hours</string>
<string name="output_fn">Output file</string>
<string name="start_export">EXPORT</string>
<string name="output_export_format">Output file format</string>
<string name="last_data_timestamp">Time of last measurement</string>
<string name="wind_speed_plots">Wind Speed Plots</string>
<string name="wind_direction_plots">Wind Direction Plot</string>
<string name="temperature_plot">Temperature Plot</string>
<string name="humidity_plot">Humidity Plot</string>
</resources>