마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

선의 둥근 모서리를 만들고 싶은데 어떻게 해야 할까요? ㅠ

0 추천

custom progress bar를 만들고 있는데, ring shape으로 선을 그릴때, 

빨간 동그라미 부분의 선끝을 둥글게 만들고 싶은데 어떻게 해야 하나요?? ㅠ

 

 

progress.xml 

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="288"
    android:toDegrees="288"
    android:pivotX="50%"
    android:pivotY="50%">
    <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="7dp"
        android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->
        <gradient
            android:angle="270"
            android:endColor="#6b9af2"
            android:startColor="#6b9af2"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>

 

prograss_bar.xml

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_marginTop="156px"
        android:layout_marginLeft="-200px"
        android:layout_width="400px"
        android:layout_height="400px"
        android:indeterminate="false"
        android:progressDrawable="@drawable/progress"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="360"
        android:progress="144" />

 

안철수 (130 포인트) 님이 2018년 12월 10일 질문

1개의 답변

+1 추천
잘못된 내용이라 삭제함
aucd29 (218,390 포인트) 님이 2018년 12월 10일 답변
aucd29님이 2018년 12월 10일 수정
혹시 dashGap 을 말씀 하시는 건가요?
제가 아래 처럼 적용을 해봤는데, dashGap 은 shape을 그릴때 stroke을 점선으로 만들때, 점선의 간격을 말하는 것 같은데, 잘못 적용해 본건가요? 제가 아는게 너무 없어서 어떻게 적용해야 하는 것인지 모르겠습니다. ㅠㅠ

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="288"
    android:toDegrees="288"
    android:pivotX="50%"
    android:pivotY="50%">
    <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="7dp"
        android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->
        <gradient
            android:angle="270"
            android:endColor="#6b9af2"
            android:startColor="#6b9af2"
            android:type="sweep"
            android:useLevel="false" />
        <stroke
            android:dashGap="2dp"
            android:dashWidth="3dp"
            android:width="2dp"
            android:color="#ffffff" />
    </shape>
</rotate>
테스트 안하고 올렸더니 혼란만 드렸네요
https://github.com/castorflex/SmoothProgressBar 여기 참고해보세요

일단 xml 로 처리하는건 코드가 안보이고 custom class 를 생성해서 하는 방법이 대중적인가 봅니다.

https://github.com/korre/android-circular-progress-bar/blob/master/app/src/main/java/se/kmdev/circularprogressbar/CircularProgressBar.java

setStrokeCap 에 Paint.Cap.ROUND 옵션을 받구요
도움 주셔서 감사합니다.
알려주신 방법으로 시도해 보도록 하겠습니다.
...