Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Android TCP Send Image


Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam problem z odebraniem

pliku (obrazka), po prostu nie 

ustawia mi go w imageView.

 

 

 

 

02-14 14:44:49.172 18974-19799/com.example.xxx.xxxx E/AndroidRuntime: FATAL EXCEPTION: Thread-85430
                                                                            Process: com.example.xxx.xxxx, PID: 18974
                                                                            android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
                                                                                at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6334)
                                                                                at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:925)
                                                                                at android.view.ViewGroup.invalidateChild(ViewGroup.java:4637)
                                                                                at android.view.View.invalidateInternal(View.java:11724)
                                                                                at android.view.View.invalidate(View.java:11688)
                                                                                at android.view.View.invalidate(View.java:11672)
                                                                                at android.widget.ImageView.setImageDrawable(ImageView.java:456)
                                                                                at android.widget.ImageView.setImageBitmap(ImageView.java:542)
                                                                                at com.example.xxx.xxxx.ControlActivity$3.run(ControlActivity.java:79)
                                                                                at java.lang.Thread.run(Thread.java:818)

 

 

 

Tak odbieram plik w android:

http://pastebin.com/uDk9WKfP

 

A tak wysyłam plik w c#:

http://pastebin.com/jS8HnzBq

Opublikowano

Nie wiem, czy o to ci chodziło:

runOnUiThread(new Runnable() {
    public void run() {
        iv.setImageBitmap(bmp);
        iv.invalidate();
    }
});

ale przynajmniej nie wychodzi z

aplikacji, tyle że niema obrazka ...

w konsolce

 

D/skia: --- SkImageDecoder::Factory returned null
Opublikowano

Masz całkowicie zły kod, o ile miał on służyć do pobierania tego obrazka :s

Za każdym powtórzeniem wykonania ciała pętli tworzysz nową tablicę bajtów, wczytujesz do niej dane ze strumienia stanowiące fragment przesyłanych, a następnie z tego fragmentu próbujesz utworzyć cały obrazek i ustawić go jako obrazek w ImageView. To wszystko powtarzasz w nieskończoność (nie do końca w nieskończoność, bo już za pierwszym czy drugim wywołaniem Ci wysypuje, bo nie potrafi tych danych odczytać).

708121422388637873334.png

Opublikowano

Sądzę, że kluczowym dla działania tego kodu jest to, żebyś go rozumiał ;) Przeczytaj co Ci napisałem. Chcesz pobierać w nieskończoność fragmenty obrazka, nawet jak strumień już będzie pusty i tworzyć z pobranych fragmentów obrazki.

708121422388637873334.png

Opublikowano

mam zmienione, a i tak jest tak samo .. zapomniałem dodać wcześniej:

 

final Button button2 = (Button) findViewById(R.id.button3);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pw.print("/Screenshot" + "$");
pw.flush();

try {
int bytesRead;
byte[] pic = new byte[5000 * 1024];
bytesRead = ins.read(pic, 0, pic.length);

bmp = BitmapFactory.decodeByteArray(pic, 0, bytesRead);

iv.setImageBitmap(bmp);
iv.invalidate();
Log.d("MyActivity", "ImageView");

String received;
received = Integer.toString(bytesRead);

Log.d("MyActivity", received);
} catch(Exception e) {
Log.e("TCP", "S: Error", e);
}

 

Ale nadal nie działa, za to w consoli mam errora:

http://pastebin.com/b36LKP6P

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...