1. 준비물
구글에서 공개한 좋은 모듈이 있습니다. Glide라고 하는 모듈입니다.
Glide : https://github.com/bumptech/glide
import com.bumptech.glide.Glide; | cs |
이렇게 하면 Glide를 쓸 수 있게 됩니다.
import com.example.keepair.myapplication.helper.Constants; import com.example.keepair.myapplication.model.Flower; | cs |
이 것은 제가 쓰는 모델입니다. 저는 모델을 Flower라고 작명했습니다.
import java.text.ParseException; import java.util.Date; import java.util.TimeZone; import uk.co.senab.photoview.PhotoViewAttacher; | cs |
예외처리와 시간 데이터 처리를 위해 불러옵니다.
private ImageView mImage; private TextView mAuthor, mText, mTime; private PhotoViewAttacher mPhotoViewAttacher; private Date mDateToUse; private String mStriingDate; | cs |
데이터를 레이아웃에서 사용할 것이기에 불러와줍니다.
2. 구현 코드
public class DetailActivity extends FragmentActivity {} | cs |
이 다음엔 이 안에 들어갈 코드를 구현합니다.
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_detail); } | cs |
Window.FEATURE_NO_TITLE 이 부분을 주의해야 합니다. 윈도우의 디스플레이 사이즈를 정해봅니다.
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int width = (int) (display.getWidth() * 0.7); //Display 사이즈의 70% int height = (int) (display.getHeight() * 0.9); //Display 사이즈의 90% getWindow().getAttributes().width = width; getWindow().getAttributes().height = height; | cs |
int 변수에 display의 값을 지정해줄 수 있습니다.
아래 코드는 날짜 양식을 정하는 코드입니다.
Intent intent = getIntent(); Flower flower = (Flower) intent.getSerializableExtra(Constants.REFERENCE.FLOWER); configViews(); mStriingDate = flower.getCreated_date().substring(0, flower.getCreated_date().length()-1); java.text.SimpleDateFormat format = new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"); format.setTimeZone(TimeZone.getTimeZone("GMT")); mDateToUse = null; | cs |
"yyyy-MM-dd'T'HH:mm:ss.SSSSSS" 여기가 우리가 주로 알던 형식을 이용한 코드입니다.
Glide로 마무리하겠습니다.
try { mDateToUse = format.parse(mStriingDate); } catch (ParseException e) { e.printStackTrace(); } mAuthor.setText(flower.getAuthor()); mText.setText(flower.getText()); mTime.setText(formatTimeString(mDateToUse)); Glide.with(getApplicationContext()).load(flower.getImage()).into(mImage); | cs |
Glide로 가져온 이미지를 flower 모델에서 가져온 텍스트와 함께 이미지 레이아웃에 넣어줍니다.
'Java' 카테고리의 다른 글
[android] Activity 구현 팁 (1) | 2018.02.03 |
---|---|
[android] 경과한 시간에 따른 날짜 표현 방식 (0) | 2018.02.03 |
[android] 구글맵 3 (0) | 2018.02.03 |
[android] 구글맵 2 (0) | 2018.02.03 |
[android] 구글맵 1 (0) | 2018.02.03 |