studio make library hdodenhof developer circleimageview android circle material-design

make - android.support.v4.widget.CircleImageView no funciona



implementation de hdodenhof circleimageview 2.1 0 (6)

Encontré un reemplazo para 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" />

Enlace de la biblioteca: https://github.com/hdodenhof/CircleImageView

cuando intento usar: 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" />

hace que mi aplicación se cuelgue

cómo admitir el nuevo Widget de diseño de materiales CircleImageView

¿Hay algún ejemplo de usar este nuevo 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


Esto es lo que funcionó para mí

diseño xml:

<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" />

Código Java:

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


Si quieres hacerlo en un estilo nativo solo usa este fragmento

<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>


CircleImageView es una clase privada de v4 , por lo que básicamente no puedes usarla. Se usa internamente para representar el círculo de progreso en un SwipeRefreshLayout , pero no está destinado a ser inflado por usted mismo.

Mira here para referencia.


CircleImageView es una clase privada de la biblioteca de soporte y no se puede usar. Pero es fácil crear este efecto usted mismo sin CircleImageView . Solo necesita definir un drawable <shape /> con un círculo transparente en el medio similar a esto:

<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>

Después de eso, simplemente combine la imagen que desea visualizar en el ImageView con el LayerList <shape /> desde arriba en una LayerList como esta:

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

Si la imagen que desea visualizar es dinámica, ¡puede crear LayerList programáticamente!


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" />