web-dev-qa-db-ja.com

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
49
Maher Ismaail

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

47
Maher Ismaail

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に表示したい画像を、上からLayerListにある<shape />ドロアブルと、次のように組み合わせます。

<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をプログラムで作成できます!

55
Xaver Kapeller

CircleImageViewv4からのプライベートクラスであるため、基本的には使用できません。 SwipeRefreshLayoutで進行状況円をレンダリングするために内部的に使用されますが、自分で膨らませることを意図したものではありません。

参照用に here を参照してください。

19
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>
10
Vikash Sharma

簡単な追加:ここで、最新のライブラリバージョン2.0.02.2.0に変更します

dependencies {

 implementation 'de.hdodenhof:circleimageview:2.2.0'

}
5
Chirag Patel

これは私のために働いたものです

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

Javaコード:

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

プロジェクトをリビルドするだけです
-Build ===> Clear Project
-Build ===> Rebuild Project

および機能しない場合
File ===> Invaildate Cahses/Restart



それから動作します

1
Samer Kasseb

依存関係:

compile 'de.hdodenhof:circleimageview:2.0.0'

コード:

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