Fresco: ์›ํ˜• ์ง„ํ–‰ ํ‘œ์‹œ์ค„

์— ๋งŒ๋“  2015๋…„ 12์›” 28์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/fresco

์•ˆ๋…• ์นœ๊ตฌ๋“ค,
๋‚ด ์•ฑ์—์„œ SimpleDraweeView๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  SimpleDraweeView๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๋ผ์šด๋“œ ์ง„ํ–‰ ํ‘œ์‹œ์ค„ ์žฌ์ •์˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
๋„์™€์ฃผ์„ธ์š”.
๋‚ด ์ฝ”๋“œ:
android:layout_width="match_parent"
android:layout_height="wrap_content">

        <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/adapter_detail_iv"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:visibility="gone"
            fresco:placeholderImage="@drawable/bg_default_loading_image" />

        <LinearLayout
            android:id="@+id/layout_progressbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:background="#33000000"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="gone">

            <ProgressBar
                android:id="@+id/indeterminate_progress_large_library"
                style="@style/Widget.MaterialProgressBar.ProgressBar.Small"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:indeterminate="true"
                android:visibility="gone" />
        </LinearLayout>
    </FrameLayout>

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@cazador4 CircleProgressBarDrawable ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์› ๋ชจ์–‘ ๋Œ€์‹  ํƒ€์›ํ˜•์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด DraweeView๊ฐ€ ์ •์‚ฌ๊ฐํ˜•์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ์š”?

๋ชจ๋“  4 ๋Œ“๊ธ€

์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๋‹น์‹ ์„ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https://github.com/facebook/fresco/pull/775

๋˜๋Š” ํ”„๋ ˆ์Šค์ฝ”์—๋Š” ์ด๋ฏธ ๋ถˆํ™•์‹คํ•œ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. U๋Š” ProgressBarDrawable์— AutoRotateDrawable์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cazador4 CircleProgressBarDrawable ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์› ๋ชจ์–‘ ๋Œ€์‹  ํƒ€์›ํ˜•์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด DraweeView๊ฐ€ ์ •์‚ฌ๊ฐํ˜•์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ์š”?

@cazador4 CircleProgressBarDrawable ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์› ๋ชจ์–‘ ๋Œ€์‹  ํƒ€์›ํ˜•์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด DraweeView๊ฐ€ ์ •์‚ฌ๊ฐํ˜•์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ผ๊นŒ์š”?

๊ทธ๊ฒƒ์ด ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ์‚ฌ์šฉ

setPlaceholderImage(
                        AutoRotateDrawable(
                            ContextCompat.getDrawable(
                                postMediaHolder.context,
                                R.drawable.ic_refresh
                            ), 1000
                        ), ScalingUtils.ScaleType.CENTER
                    )

๊ทธ๋ฆฌ๊ณ  ์ค‘์•™์— ์žˆ์–ด์•ผ ํ•˜๊ณ  ๋“œ๋กœ์–ด๋ธ”์˜ ์ข…ํšก๋น„์™€ ๋ฐฐ์œจ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰