آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

Circle ImageView بدون کد نویسی

Reza  9 سال پیش  9 سال پیش
+21 0

سلام

    من امروز آموزش Circle ImageView آقای کاشی زاده رو دیدم که اتفاقی یه روش دیگه رو در StackOverFlow دیدم . چرا از این روش استفاده نمیشه ( نیاز به کد نویسی نداره و فقط با xml هست )

1 - اول یک فایل xml از نوع layer-list ساخته و سه فایل user , circle1 , circle2 رو توش قرار داده :

//res/drawable/layerlist.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:drawable="@drawable/user" />
<item android:drawable="@drawable/circle1"/>
<item android:drawable="@drawable/circle2"/>

</layer-list>

که user همون عکس ماست که مثلا در drawable-hdpi قرار داره

2 - فایل های circle1 , circle2 که از نوع shape هست به ترتیب :

//res/drawable/circle1.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="24dp"
android:shape="ring"
android:useLevel="false" >

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

<stroke
android:width="5dp"
android:color="@android:color/holo_orange_light" />

</shape>

 

//res/drawable/circle2.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="26dp"
android:shape="ring"

android:useLevel="false" >

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

<stroke
android:width="5dp"
android:color="@android:color/black" />

</shape>

3 - در آخر هم این فایل layerlist رو به ImageView اختصاص داده :

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/
layerlist"/>
</ImageView>

*** مشکل این روش چیه و چرا از این استفاده نمیشه ؟! چون تا جایی که در اون سایت دیدم خیلی از روش کد نویسی استفاده شده و فقط 2 جا دیدم که اینو گفته !

اینم نتیجه :

 

البته اعداد مربوط به innerRadius و width مربوط به فایل های circle1 و circle2 برای imageView با ابعاد 48 dip هستند و برای ابعاد دیگه سایز ها تغییر میکنه . همچنین در فایل circle2 رنگ مربوط به تگ stroke باید همرنگ زمینه imageView باشه ( یعنی لایه ای که در آن قرار گرفته ) ، و در فایل layerList ، آیتم user بالاتر از همه قرار بگیره ، و ویژگی Src عکس حذف بشه .

ممنون .

0 0
(9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .