wanneer ik probeer te gebruiken:
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" />
mijn app crasht
hoe de nieuwe Material Design Widget CircleImageView te ondersteunen
is er een voorbeeld van het gebruik van deze nieuwe widget
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
Antwoord 1, autoriteit 100%
De CircleImageView
is een privéklasse van de ondersteuningsbibliotheek en kan niet worden gebruikt. Maar het is gemakkelijk om dit effect zelf te creëren zonder de CircleImageView
. Je hoeft alleen maar een <shape />
te definiëren die kan worden getekend met een transparante cirkel in het midden, vergelijkbaar met deze:
<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>
Vervolgens combineer je gewoon de afbeelding die je wilt weergeven in de ImageView
met de <shape />
die je van boven kunt tekenen in een LayerList
zoals dit:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/your_image" />
<item android:drawable="@drawable/circle" />
</layer-list>
Als de afbeelding die u wilt weergeven dynamisch is, kunt u de LayerList
programmatisch maken!
Antwoord 2, autoriteit 87%
Ik heb een vervanging gevonden voor 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" />
Bibliotheeklink: https://github.com/hdodenhof/CircleImageView
Antwoord 3, autoriteit 35%
CircleImageView
is een privéklasse van v4
, dus je kunt het in principe niet gebruiken. Het wordt intern gebruikt om de voortgangscirkel in een SwipeRefreshLayout
weer te geven, maar is niet bedoeld om zelf op te blazen.
Zie hierter referentie.
Antwoord 4, autoriteit 18%
Als je het in een native stijl wilt doen, gebruik dan dit fragment
<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>
Antwoord 5, autoriteit 9%
Dit is wat voor mij werkte
xml-indeling:
<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"
/>
Java-code:
CircleImageView pic = (de.hdodenhof.circleimageview.CircleImageView)rootView.findViewById(R.id.picid);
Antwoord 6, autoriteit 9%
Eenvoudig toevoegen: hier de nieuwste bibliotheekversie 2.0.0
wijzigen in 2.2.0
dependencies {
implementation 'de.hdodenhof:circleimageview:2.2.0'
}
Antwoord 7, autoriteit 5%
Bouw het project gewoon opnieuw op
- Bouw ===> Project wissen
- Bouw ===> Project herbouwen
en zo niet werkt
Bestand ===> Cahses ongeldig maken /
opnieuw starten
Dan zal het werken.
Antwoord 8, autoriteit 2%
afhankelijkheid:
compile 'de.hdodenhof:circleimageview:2.0.0'
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" />