본문 바로가기

Android/Code Piece6

Color hex 코드를 R, G, B 값으로 분리하기 안드로이드의 색상은 hex코드로 사용합니다. 흰색의 경우 #ffffff, 검은색의 경우 #00000 와 같습니다. setColor등으로 해당 컬러를 view 요소에 적용하게 되는데, 그냥은 적용하지 못하고 int값으로 변환 후 사용합니다. 아래와 같습니다. String colorHex ="#ffffff" public void setColor() { int color = Color.parseColor(colorHex); textView.setColor(color); } 이때 컬러코드의 값을 R, G, B로 분리해야 할 경우가 있습니다. 이때는 아래와 같이 사용하면 됩니다. String colorHex = "#ffffff" public void colorToRGB() { int color = Color.pa.. 2020. 7. 18.
EditText에 숫자만 입력할 때 최대/최소값 설정하기 우선 EditText에 숫자만 입력되도록 레이아웃 xml의 EditText에 다음속성을 선언합니다. ** android:inputType="number" 아래와 같은 class를 만들어 줍니다. package com.test; import android.text.InputFilter; import android.text.Spanned; public class InputFilterMinMax implements InputFilter { private int min, max; public InputFilterMinMax(int min, int max) { this.min = min; this.max = max; } public InputFilterMinMax(String min, String max) { t.. 2020. 6. 3.
ScrollView에 잔상이 남는 현상 ScrollView를 커스텀하여 사용하던 중에 발생했습니다. 생명주기가 onStop등으로 가있다가 onResume으로 복원후에 화면이 다시그려진 뒤 스크롤을 할 때 스크롤뷰에 잔상이 같이 스크롤되는 현상이 발생했습니다. 이리저리 찾아보니 정확한 원인이 어떤 것인지는 확인할 수 없었지만 보통 ScrollView를 커스텀 하여 사용할 때 많이 발생하는것 같고 아래와 같은 방법으로 해결하는 방법이 있었습니다. 해당 방법이 적용되는 이유를 보니 스크롤뷰를 스크롤할때 호출되는 Override 함수인 computeScroll을 호출하고 내부에서 requestLayout()을 호출하는 것으로 레아아웃을 다시 그려주기 때문에 해결되는것 같습니다. Java @Override public void computeScroll.. 2020. 5. 4.
RecyclerView의 스크롤 차단하기 1한 뷰에 여러개의 RecyclerView를 사용하는 경우, 아래와 같이 ScrollView 안에 Recyclerview를 넣게 됩니다. 이때 RecyclerView의 스크롤을 차단해 주지 않으면 ScrollView와 충돌하게 되어 이중스크롤이 되게 됩니다. 1. 아래와 같은 코드를 사용하면 RecyclerView의 스크롤을 차단할 수 있습니다. mRecyclerview.setLayoutManager(new LinearLayoutManager(this){ @Override public boolean canScrollVertically() { return false;//세로스크롤 차단 } @Override public boolean canScrollHorizontally() { return false;//.. 2020. 4. 23.
Stroke의 색상을 동적으로 바꾸기 안드로이드의 drawable에 다음과 같이 사용자 정의 drawable resource를 만들 수 있습니다. 해당 drawable resource를 round_box.xml로 정의하고 backgound로 설정해주면 아래와 같이 나타납니다. 아래와 같은 코드를 사용하시면 코드상에서 동적으로 stroke의 색상을 변경할 수 있습니다. RelativeLayout searchBackground = mainView.findViewById(R.id.search_bar); GradientDrawable mGradientDrawable = (GradientDrawable) searchBackground.getBackground(); mGradientDrawable.setStroke(10, Color.RED); 자세한 .. 2020. 4. 23.
비트맵 이미지를 원형으로 크롭하기 StackOverFlow에서 발견한 좋은 코드를 일부 수정하였습니다. Width, Heigt 를 넣으면 사이즈 조절을 하도록 추가하였습니다. 원본 사이즈 그대로 원모양으로 크롭된 이미지를 출력하기 위해서는 Width와 Height에 0, 0을 넣어주면 됩니다. public static Bitmap getBitmapCircleCrop(Bitmap bitmap, int Width, int Height) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; fina.. 2020. 4. 11.