webapp안에 이미지를 업로드하여 서버에 저장
url/경로를 통해 불러온다...
Cursor: DB에서 가져온 데이터를 쉽게 처리하기 위해서 인터페이스를 제공
행을 참조하기 때문에 Cursor의 위치를 바꿔주는 메소드들이 존재
Cursor.moveToFirst() - 처음 행으로 이동
Cursor.moveToNext()
Cursor.moveToPrevious()
Cursor.moveToPosition(position)
Cursor.moveToLast()
Cursor.getInt(0) - 해당 행 0번째 열 data 갖고옴
Cursor.getstring(3)
URLConnection은 웹을 통해 데이터를 주고받는데 사용
AsyncTask
Thread를 사용할 때 UI객체에 접근하기위해 Handler를 통해 접근
하지만, AsyncTask를 사용하면 하나의 클래스 안에 Thread동작 부분과 UI접근 부분 동시 정의 가능
doInbackground() - Thread부분
onProgressUpdate() - AsyncTask가 동작하는 중간중간 상태를 업데이트 하는 부분
onPostExecute() - AsyncTask가 종료되면 (doInbackground()코드가 모두 실행되면) 실행되는 부분
inputStream:
// URL 객체를 생성
URL url = new URL(UrlString);
// URL에 연결된 객체를 생성
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
imageView.setImageBitmap(ImageRoader().getBitmapImg("1-1.jpg"))
// 이미지 가져오기
class ImageRoader {
private val serverUrl = "http://14.39.38.168:3000/upload/"
init {
ThreadPolicy()
}
fun getBitmapImg(imgStr: String?): Bitmap? {
var bitmapImg: Bitmap? = null
try {
val url = URL(
serverUrl +
URLEncoder.encode(imgStr, "utf-8")
)
// Character is converted to 'UTF-8' to prevent broken
val conn = url
.openConnection() as HttpURLConnection
conn.doInput = true
conn.connect()
val `is` = conn.inputStream
bitmapImg = BitmapFactory.decodeStream(`is`)
} catch (ioe: IOException) {
ioe.printStackTrace()
}
return bitmapImg
}
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
class ThreadPolicy {
// For smooth networking
init {
val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
StrictMode.setThreadPolicy(policy)
}
}
http://yongdaekim.blogspot.com/2014/07/android-loadimage.html
느낌만 좋음
/*
val mThread: Thread = object : Thread() {
override fun run() {
try {
val url = URL("http://14.39.38.168:3000/upload/3.jpg")
val conn:HttpURLConnection = url.openConnection() as HttpURLConnection
conn.setDoInput(true)
conn.connect()
val `is`: InputStream = conn.getInputStream()
bitmap = BitmapFactory.decodeStream(`is`)
} catch (e: MalformedURLException) {
e.printStackTrace()
} catch (e: IOException) {
e.printStackTrace()
}
}
}
mThread.start() // Thread 실행
try {
mThread.join()
imageView.setImageBitmap(bitmap)
} catch (e: InterruptedException) {
e.printStackTrace()
}
*/
'안드로이드' 카테고리의 다른 글
[Android] RatingBar (0) | 2022.03.28 |
---|---|
[Android] seekbar (0) | 2022.03.28 |
[Android] VideoView (0) | 2022.03.25 |
[Android] GridView (0) | 2022.03.25 |
[Android] ScrollView (0) | 2022.03.25 |
댓글