-1

Я пытаюсь сделать круговое изображение в моем классе регистрации. Я пробовал много решений, но ни одно из решений не работало для меня. Может ли кто-нибудь помочь мне разобраться с проблемой? Благодарю.Как сделать круглый вид изображения

build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.example.seng.healthyapp" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'de.hdodenhof:circleimageview:2.1.0' 
    testCompile 'junit:junit:4.12' 
    compile 'com.google.android.gms:play-services-location:9.2.0' 

} 

register.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:gravity="center" 
    android:orientation="vertical"> 

    <de.hdodenhof.circleimageview.CircleImageView 
     android:id="@+id/imgProfilePicture" 
     android:layout_width="120dp" 
     android:layout_height="120dp" 
     android:layout_marginBottom="20dp" 
     app:civ_border_width="3dp" 
     app:civ_border_color="@color/white" 
     android:background="@mipmap/profile" /> 


    <EditText 
     android:id="@+id/editTextName" 
     android:layout_width="325dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:background="@color/white" 
     android:hint="@string/hint_name" 
     android:padding="10dp" 
     android:singleLine="true" /> 

    <EditText 
     android:id="@+id/editTextPassword" 
     android:layout_width="325dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:background="@color/white" 
     android:hint="@string/hint_password" 
     android:inputType="textPassword" 
     android:padding="10dp" 
     android:singleLine="true" /> 

    <!-- Login Button --> 

    <EditText 
     android:id="@+id/editTextConfirmPassword" 
     android:layout_width="325dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:background="@color/white" 
     android:hint="@string/confirm_password" 
     android:inputType="textPassword" 
     android:padding="10dp"/> 

    <Button 
     android:id="@+id/buttonSave" 
     android:layout_width="325dp" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:background="@color/blue" 
     android:text="Confirm" 
     android:textAllCaps="false" 
     android:textColor="@color/white" 
     android:textSize="15dp" /> 
</LinearLayout> 

enter image description here

ответ

1

это будет сделать растровый округлый, я никогда не имел проблем с ним, когда я был tring, чтобы достичь этого, я также попробовал круговое изображение, но я нашел, что это m ore easy to use

Bitmap book = BitmapFactory.decodeResource(getResources(),R.drawable.book); 

imageView.setImageBitmap(getRoundedBitmap(book)); 


public Bitmap getRoundedBitmap(Bitmap bitmap){ 
    Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 
    Paint paint = new Paint(); 
    paint.setShader(shader); 
    paint.setAntiAlias(true); 
    Canvas c = new Canvas(circleBitmap); 
    c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint); 
    return circleBitmap; 
} 
+0

Могу ли я знать, что значение, которое я должен поставить для переменной битовой карты? – Tony

+0

Я отредактировал мой awnser, вы можете сделать Bitmap несколькими способами, если у вас есть это в Drawable, вы можете использовать 'BitmapFactory.decodeResource' –

+0

Спасибо, это работает для меня. – Tony

0

Хотя вы попробуете создать его самостоятельно. Это похоже на попытку изобретать колесо.

Я бы очень рекомендовал использовать одну из доступных сторонних библиотек. Я использовал эти библиотеки в своем производственном коде, и они отлично работают.

Вот несколько, которые я использовал

https://github.com/lopspower/CircularImageView

https://github.com/hdodenhof/CircleImageView

+0

Да, я тоже использую третью сторону. Спасибо за ваше предложение, попробуем позже – Tony

Смежные вопросы