सवाल android.support.v4.widget.CircleImageView काम नहीं करता है


जब मैं उपयोग करने की कोशिश करता हूं: android.support.v4.widget.CircleImageView

        <android.support.v4.widget.CircleImageView
                android:id="@+id/picture"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center_vertical"
                android:src="@drawable/ic_bg" />

यह मेरे ऐप दुर्घटना बनाता है

नई सामग्री डिजाइन विजेट CircleImageView का समर्थन कैसे करें

क्या कोई नया उदाहरण इस नए विजेट का उपयोग करता है

logcat

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vogella.android.recyclerview/com.vogella.android.recyclerview.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v4.widget.CircleImageView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
        at android.app.ActivityThread.access$700(ActivityThread.java:157)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5317)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v4.widget.CircleImageView
        at

44
2018-05-20 10:22


मूल


अपना लॉगकैट पोस्ट करें .. - Pavya
यह मेरा दोस्त है मेरे दोस्त - Maher Ismaail
क्या कोई नया उदाहरण इस नए विजेट का उपयोग करता है - Maher Ismaail
इस्तेमाल नहीं किया जाना चाहिए, शायद: code.google.com/p/android/issues/detail?id=85049 - android developer


जवाब:


CircleImageView समर्थन पुस्तकालय का एक निजी वर्ग है और इसका उपयोग नहीं किया जा सकता है। लेकिन बिना किसी प्रभाव के अपने प्रभाव को बनाना आसान है CircleImageView। आपको सिर्फ एक को परिभाषित करने की आवश्यकता है <shape /> मध्य में एक पारदर्शी सर्कल के साथ आकर्षित करने योग्य:

<shape
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1"
    android:useLevel="false" >

    <solid android:color="@android:color/transparent" />

    <stroke
        android:width="100dp"
        android:color="#FFFFFFFF" />
</shape>

उसके बाद उस छवि को गठबंधन करें जिसे आप प्रदर्शित करना चाहते हैं ImageView उसके साथ <shape /> ए में से ऊपर खींचने योग्य LayerList इस तरह:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_image" />
    <item android:drawable="@drawable/circle" />
</layer-list>

यदि आप जिस छवि को प्रदर्शित करना चाहते हैं वह गतिशील है तो आप इसे बना सकते हैं LayerList प्रोग्राम के रूप में!


51
2018-05-20 10:32



@MaherIsmaail आप इस तरह किसी और के जवाब को संपादित नहीं कर सकते हैं। मैंने अभी संपादन को वापस ले लिया है। - Xaver Kapeller
बस इसे काम नहीं कर सकता :( - Tima


मुझे android.support.v4.widget.CircleImageView के लिए एक प्रतिस्थापन मिला।

<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/meal_image_order"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/menu1"
app:civ_border_width="2dp"
app:civ_border_color="@color/white"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />

लाइब्रेरी लिंक: https://github.com/hdodenhof/CircleImageView 


41
2017-08-12 14:23



github.com/hdodenhof/CircleImageView पुस्तकालय के लिए - Sumighosh Charuvil
उस लिंक में मैंने पुस्तकालय को डाउनलोड करने के लिए नहीं देखा, बस स्रोत कोड। क्या आप इस कस्टम दृश्य को ऐप में जोड़ने के तरीके के बारे में अधिक जानकारी दे सकते हैं? - Zvi
@Zvi आप gradle का उपयोग करना होगा। यहां उल्लेख किया गया है github.com/hdodenhof/CircleImageView#gradle - Abhishek
@ अभिषेक मुझे पता है कि मैंने अपने ग्रेडल 'संकलन' में जोड़ा है de.hdodenhof: circleimageview: 2.0.0 ''। लेकिन सर्कलिमेजव्यू के लिए इसे एक फ़ाइल (शायद एक जार या लाइब्रारे) की आवश्यकता है। है ना? - Zvi
बदलने के app:border_width="2dp" app:border_color="@color/white" द्वारा app:civ_border_width="2dp" app:civ_border_color="@color/white" काम करने के लिए - Chaman Saini


CircleImageView से एक निजी वर्ग है v4, इसलिए मूल रूप से आप इसका उपयोग नहीं कर सकते हैं। इसका उपयोग आंतरिक रूप से प्रगति सर्कल को प्रस्तुत करने के लिए किया जाता है SwipeRefreshLayout, लेकिन यह आपके द्वारा फुलाया जाने वाला नहीं है।

देख यहाँ सन्दर्भ के लिए।


18
2018-05-20 10:42



लेकिन Google ने इसे कस्टम व्यू के रूप में क्यों जोड़ा, अगर मैं इसका उपयोग नहीं कर सकता - Maher Ismaail
इसका उपयोग स्वाइप रीफ्रेश लयआउट में आंतरिक रूप से किया जाता है। यदि आपको केवल एक सर्कल रूपरेखा के साथ एक छवि दृश्य की आवश्यकता है, तो SO पर बहुत सारे प्रश्न हैं। - natario


यदि आप इसे देशी शैली में करना चाहते हैं तो बस इस स्निपेट का उपयोग करें

            <android.support.v7.widget.CardView
                android:id="@+id/view2"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:background="#ffffff"
                android:shape="ring"
                app:cardCornerRadius="23dp">

                <ImageView
                    android:id="@+id/profile_img_post"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:scaleType="centerCrop"
                    android:src="@drawable/test_img"></ImageView>
            </android.support.v7.widget.CardView>

5
2017-11-27 03:01



आपका जवाब अच्छा हैक है। परंतु android:shape="ring" यहाँ कुछ भी नहीं है। रख दो app:cardCornerRadius="1000dp" (उच्च रखा) चाल चल रही थी। आप उच्च अपवित्र के लायक हैं। - nyconing


इसी से मेरा काम बना है

एक्सएमएल लेआउट:

  <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/picid"
            android:layout_width="270dp"
            android:layout_height="270dp"
            android:src="@drawable/avatar_small"
            android:layout_marginTop="25dp"
            />

जावा कोड:

CircleImageView pic = (de.hdodenhof.circleimageview.CircleImageView)rootView.findViewById(R.id.picid);

2
2018-05-29 14:07



यह एक तीसरी पार्टी पुस्तकालय उदाहरण है ... सवाल के बारे में है android.support.v4.widget.CircleImageView - Avinash Kumar


1. Use this dependency:  compile 'de.hdodenhof:circleimageview:2.0.0'
2. Use this code: -
    <de.hdodenhof.circleimageview.CircleImageView
                   android:id="@+id/iv_circle"
                   android:layout_width="96dp"
                   android:layout_height="96dp"
                   android:layout_alignParentLeft="true"
                   android:layout_alignParentTop="true"
                   android:src="@drawable/thumb"
                   app:border_color="@color/white"
                   app:border_width="2dp" />

0
2018-04-24 08:02