비 UI 클래스에서 Bitmap을 보내야 비 UI 클래스를 사용할 수 있습니다. 어떻게하면 돼? localbroadcastreceiver는 여기에있는 옵션일까요, 아니면 내 목표를 달성하기위한 쉬운 방법이 있습니까? : 소켓 연결에서 이미지를 받고 그 이미지로 UI를 업데이트하려고합니다.비 ui 클래스에서 액티비티로 이미지 보내기
답변
실제를 보내지 않아도됩니다. Intents
및 프로세스 간 통신으로 작업하는 경우 이미지 경로가 잘 전달 될 수 있지만 동일한 프로세스에 있으면 참조 전달이 완료됩니다 당신이 어떤 pojo라도하는 것과 같은 방식입니다.
네트워크 이미지 인 경우. 이미지의 크기에 따라 디스크 나 메모리에 캐시 할 수 있습니다.
PS; 당신은
실제로 소켓 연결에서 해당 이미지를 수신하고 있습니다. 그리고 해당 이미지를 사용하여 UI를 업데이트하고 싶습니다. – user6657161
이미지를 메모리에 저장하고 활동을 보냄으로써 이제 이미지를 읽을 수 있다는 메시지를 보냈습니다. – user6657161
@ user6657161 굉장합니다. 그것은 아주 간단합니다. "이봐 요, 방금 소켓에서 파일을 가져 왔는데 여기에 경로가 있습니다. 지금 읽을 수 있습니다." 나는'BroadCastReceiver'가 안드로이드에서 메시지를 넘겨주는 데 유용하다는 것을 안다. – peter
한 가지 방법은 덜 모호한 조금 그 방법 static
을 확인하는 것입니다 귀하의 질문을 할 수 있습니다 당신은 다음과 같이 비 활동 클래스에서 사용할 수 있습니다 : 당신의 activity class
에서 다음
public class MyBitmap{
public static Bitmap getMyBitmap(){
Bitmap bitmap = Get your bitmap from the socket connection
return bitmap;
}
}
:
imageView.setImageBitmap(MyBitmap.getMyBitmap());
좋지만 설정할 필요가 없기 때문에 사용할 수 없다. (이미지가 이미 없기 때문에) – user6657161
예. localbroadcastreceiver를 사용하면 쉽게 달성 할 수 있습니다. 그리고 이벤트 버스를 적용하는 것보다 좋은 연습 ... XMPP 같은 것을 사용하고 있을지도 모른다. localbroadcastreceiver에서 이미지를 가져 와서 거기에서 전체 이미지 경로를 가져 와서 액티비티로 전달하면 거기에 액티비티의 경로에서로드됩니다.
XMPP로 작업하고 있는가? : D –
아니, 아니야, P는 captcha 이미지 였어. – user6657161
인터페이스 - 일반 Java 스레드에서 데이터를 전달하는 것과 같은 방법 –