自定义View之圆形圆角椭圆进度条等
摘自:https://github.com/luqinmao/RoundImageView/blob/master/app/src/main/res/layout/activity_main.xml
很强大 效果截图
很多都是自定义属性直接使用就可以
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> //圆角的 <com.lqm.roundview.RoundImageView android:layout_width="120dp" android:layout_height="120dp" android:layout_margin="10dp" android:scaleType="fitXY" android:src="@mipmap/image_1" app:corner_radius="20dp" /> //只设置右边的圆角 <com.lqm.roundview.RoundImageView android:layout_width="120dp" android:layout_height="120dp" android:layout_margin="10dp" android:scaleType="fitXY" android:src="@mipmap/image_1" app:rightBottom_corner_radius="20dp" app:rightTop_corner_radius="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> //圆形图片 <com.lqm.roundview.RoundImageView android:layout_width="120dp" android:layout_height="120dp" android:layout_margin="10dp" android:scaleType="fitXY" android:src="@mipmap/image_2" app:border_color="#68f" app:border_width="5dp" app:type="circle" /> //椭圆 通过宽高设置 <com.lqm.roundview.RoundImageView android:layout_width="120dp" android:layout_height="80dp" android:scaleType="fitXY" android:src="@mipmap/image_2" app:border_color="#9999" app:border_width="1dp" app:type="oval" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> //圆形进度条 设置边框颜色 <com.lqm.roundview.RoundImageView android:id="@+id/iv_progress" android:layout_width="130dp" android:layout_height="130dp" android:scaleType="fitXY" android:src="@mipmap/image_3" app:border_color="#fff" app:border_width="5dp" app:type="circle" android:layout_margin="10dp" /> //圆形进度条 设置 进度颜色 <com.lqm.roundview.RoundImageView android:layout_width="130dp" android:layout_height="130dp" android:scaleType="fitXY" android:src="@mipmap/image_3" app:border_color="#7195ae" app:border_width="5dp" app:type="circle" app:progress_border="120" app:progress_color="#eda167" android:layout_margin="10dp" /> </LinearLayout> </LinearLayout>
使用:
导入依赖:
compile 'com.lqm:RoundImageView:1.0.0'
直接在XML里引用就可以了 上面的可以借鉴
另外进度条这里可以提供一个动态的效果
进入他的源码里边加一个
getmBorderProgress的方法
new AsyncTask<String, Integer, String>() { @Override protected String doInBackground(String... params) { for (int i = 0; i <= 360; i++) { SystemClock.sleep(100 / 12); publishProgress(i); } return null; } @Override protected void onProgressUpdate(Integer... values) { if (mIvProgress.getmBorderProgress()>= 360) { mIvProgress.setProgress(360,R.color.orange); } mIvProgress.setProgress(values[0],R.color.orange); } }.execute();