Ich programmiere erneut an eine neue App. Um den User den Spaß nicht zu verderben, möchte ich Bilder(300 - 2000 Stück) aus dem Interent in einem View anzeigen lassen. Wenn ich die ganzen Bilder in die App packe, dann braucht ja die App paar GB an Speicherplatz.
Ich möchte, dass es im View angezeigt wird. Wenn das unnmöglich ist, dann werde ich die Views in ImageViews umwandeln wollen.
Am besten, wie das mit der Aktuelle Flasche....
Das was ich im Internet gefunden habe, hat nicht funktioniert. Wenn dieser Schritt kommt(aktuelleFlasche.setImageDrawable(view1); Siehe Code. Habe es zurzeit als Kommentar gemacht....), dann stürtzt die App ab.
Ich suche ein Code, der aus dem Internet ein bestimmtes Bild holt und als ImageRessource bzw. ImageDrawable anzeigt.
Hier der Code:
[CODE lang="java" highlight="96"]package ..........................................;
import android.graphics.drawable.Drawable;
import android.media.Image;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
public class FlaschenFragment extends Fragment {
ImageView aktuell_view;
View view1, view2, view3, view4, view5, view6, view7, view8, view9, view10;
int flaschenauswahlnummer = 1;
int view_1 = 0;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View fragmentlayout_FlaschenFragment = inflater.inflate(R.layout.fragment_flaschen, null);
aktuell_view = (ImageView)fragmentlayout_FlaschenFragment.findViewById(R.id.aktuelle_flasche_view);
aktuelleFlascheCheck();
BildImport();
view1 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_1);
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (view_1 == 1){
aktuell_view.setImageResource(R.drawable.coin);
}
}
});
view2 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_2);
view3 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_3);
view4 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_4);
view5 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_5);
view6 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_6);
view7 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_7);
view8 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_8);
view9 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_9);
view10 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_10);
return fragmentlayout_FlaschenFragment;
}
private void BildImport() {
Thread thread = new Thread(new ThreadImport());
thread.start();
}
class ThreadImport implements Runnable{
@Override
public void run() {
Drawable dView1 = null, dView2, dView3, dView4, dView5, dView6, dView7, dView8, dView9, dView10 = null;
try {
URL url1 = new URL("https://firebasestorage.googleapis.com/v0/b/flaschen-drehen.appspot.com/o/flasche2.png?alt=media&token=a9b6944c-434f-4304-a26b-c6157cd6efc4");
InputStream is1 = (InputStream) url1.getContent();
dView1 = Drawable.createFromStream(is1, "src");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/* aktuell_view.setImageDrawable(dView1);*/
}
}
private void aktuelleFlascheCheck() {
switch (flaschenauswahlnummer){
case 1:
/* aktuell_view.setBackgroundResource(R.drawable.gesperrt_style);*/
aktuell_view.setImageResource(R.drawable.bierflasche);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
}
}
}
[/CODE]
Ich möchte, dass es im View angezeigt wird. Wenn das unnmöglich ist, dann werde ich die Views in ImageViews umwandeln wollen.
Am besten, wie das mit der Aktuelle Flasche....
Das was ich im Internet gefunden habe, hat nicht funktioniert. Wenn dieser Schritt kommt(aktuelleFlasche.setImageDrawable(view1); Siehe Code. Habe es zurzeit als Kommentar gemacht....), dann stürtzt die App ab.
Ich suche ein Code, der aus dem Internet ein bestimmtes Bild holt und als ImageRessource bzw. ImageDrawable anzeigt.
Hier der Code:
[CODE lang="java" highlight="96"]package ..........................................;
import android.graphics.drawable.Drawable;
import android.media.Image;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
public class FlaschenFragment extends Fragment {
ImageView aktuell_view;
View view1, view2, view3, view4, view5, view6, view7, view8, view9, view10;
int flaschenauswahlnummer = 1;
int view_1 = 0;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View fragmentlayout_FlaschenFragment = inflater.inflate(R.layout.fragment_flaschen, null);
aktuell_view = (ImageView)fragmentlayout_FlaschenFragment.findViewById(R.id.aktuelle_flasche_view);
aktuelleFlascheCheck();
BildImport();
view1 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_1);
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (view_1 == 1){
aktuell_view.setImageResource(R.drawable.coin);
}
}
});
view2 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_2);
view3 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_3);
view4 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_4);
view5 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_5);
view6 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_6);
view7 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_7);
view8 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_8);
view9 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_9);
view10 = (View)fragmentlayout_FlaschenFragment.findViewById(R.id.flasche_view_10);
return fragmentlayout_FlaschenFragment;
}
private void BildImport() {
Thread thread = new Thread(new ThreadImport());
thread.start();
}
class ThreadImport implements Runnable{
@Override
public void run() {
Drawable dView1 = null, dView2, dView3, dView4, dView5, dView6, dView7, dView8, dView9, dView10 = null;
try {
URL url1 = new URL("https://firebasestorage.googleapis.com/v0/b/flaschen-drehen.appspot.com/o/flasche2.png?alt=media&token=a9b6944c-434f-4304-a26b-c6157cd6efc4");
InputStream is1 = (InputStream) url1.getContent();
dView1 = Drawable.createFromStream(is1, "src");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/* aktuell_view.setImageDrawable(dView1);*/
}
}
private void aktuelleFlascheCheck() {
switch (flaschenauswahlnummer){
case 1:
/* aktuell_view.setBackgroundResource(R.drawable.gesperrt_style);*/
aktuell_view.setImageResource(R.drawable.bierflasche);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
}
}
}
[/CODE]
Zuletzt bearbeitet: