안드로이드 개발에서 많은 비중을 차지하는 UI패턴은 ListView에서 여러 이미지를 보여주는 Activity입니다. 전형적인 흐름을 정리하면 아래와 같습니다.
1. 목록조회 API호출
2. API를 파싱하고 ListView에 데이터를 보여 줌.
3. 각 아이템마다의 이미지 주소로 다시 서버를 호출
4. 이미지를 디코딩하고 ImageView에서 보여줌.
안드로이드 개발에서 많은 비중을 차지하는 UI패턴은 ListView에서 여러 이미지를 보여주는 Activity입니다. 전형적인 흐름을 정리하면 아래와 같습니다.
1. 목록조회 API호출
2. API를 파싱하고 ListView에 데이터를 보여 줌.
3. 각 아이템마다의 이미지 주소로 다시 서버를 호출
4. 이미지를 디코딩하고 ImageView에서 보여줌.
| import android.content.Context; | |
| import android.graphics.Bitmap; | |
| import android.graphics.drawable.*; | |
| import android.util.AttributeSet; | |
| import com.android.volley.toolbox.NetworkImageView; | |
| public class FadeInNetworkImageView extends NetworkImageView { | |
| private static final int FADE_IN_TIME_MS = 250; |
| { | |
| "ANDROID_VERSION": 1.5, | |
| "APP_VERSION_CODE": 8, | |
| "APP_VERSION_NAME": 1.3, | |
| "AVAILABLE_MEM_SIZE": 181972992, | |
| "BRAND": "generic", | |
| "BUILD": { | |
| "BOARD": "unknown", | |
| "BRAND": "generic", | |
| "DEVICE": "generic", |
| /* | |
| * Copyright (C) 2014 Chris Banes | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software |
| public class QuickReturn { | |
| private final static int ANIMATION_DURATION_MILLIS = 250; | |
| private final ListView listView; | |
| private final View quickReturnView; | |
| private final View headerPlaceholder; | |
| private int itemCount; | |
| private int itemOffsetY[]; |
| package com.yelp.android.ui.widgets; | |
| import com.yelp.android.R; | |
| import android.content.Context; | |
| import android.content.res.TypedArray; | |
| import android.graphics.Canvas; | |
| import android.graphics.Paint; | |
| import android.graphics.PorterDuff; | |
| import android.graphics.PorterDuffXfermode; |
| package com.flavienlaurent.notboringactionbar; | |
| import android.content.Context; | |
| import android.graphics.Canvas; | |
| import android.util.AttributeSet; | |
| import android.widget.ImageView; | |
| /** | |
| * Created by f.laurent on 21/11/13. | |
| * antoine-merle.com inspiration |
| import com.android.volley.toolbox.HurlStack; | |
| import com.squareup.okhttp.OkHttpClient; | |
| import java.io.IOException; | |
| import java.net.HttpURLConnection; | |
| import java.net.URL; | |
| /** | |
| * An {@link com.android.volley.toolbox.HttpStack HttpStack} implementation which | |
| * uses OkHttp as its transport. | |
| */ |
| /* | |
| * Copyright (C) 2014 Antonio Leiva Gordillo. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software |
| public class MainActivity extends Activity { | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.layoutfab); | |
| //Outline | |
| int size = getResources().getDimensionPixelSize(R.dimen.fab_size); | |
| Outline outline = new Outline(); |