AndroidView
Android开发必备偷懒神器之比例控件(正方形、比例矩形)、点击效果(水波纹、滤镜)、Selector(CheckBox,RadioButton)、shape(圆角、ImageView圆角、画线、边
Install / Use
/learn @AnJiaoDe/AndroidViewREADME
简书_https://www.jianshu.com/p/fa5f5cb3edd1
@[toc]
使用方法:将libray模块复制到项目中,或者直接在build.gradle中依赖:
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.AnJiaoDe:AndroidNecessaryView:V1.0.1'
}
注意:如果sync报错,是因为和com.android.tools.build:gradle 3.0有关, 可以改将compile改为implementation 或者api 注意:水波纹效果,5.0及以上才有效,需要设置点击事件监听器,才能看到
1.控件点击效果(水波纹、图片滤镜)免去Selector和一个按钮2张图片的麻烦
ClickImageView点击效果有滤镜和波纹2种,默认是滤镜,你可以设置为波纹效果
使用方法:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_click"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#eee"
android:orientation="vertical"
android:padding="10dp">
<!--默认水波纹-->
<com.cy.necessaryview.rippleview.ClickFrameLayout
android:id="@+id/rpfl"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#fff" />
<!--自定义水波纹颜色-->
<com.cy.necessaryview.rippleview.ClickFrameLayout
android:id="@+id/rpfl2"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:background="#99ff0000"
app:colorRipple="#fff" />
<!--设置imageview水波纹,默认是超过边界-->
<com.cy.necessaryview.rippleview.ClickImageView
android:id="@+id/civ1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/after_sale_icon"
app:haveRipple="true" />
<!--设置imageview水波纹,设置不超过边界-->
<com.cy.necessaryview.rippleview.ClickImageView
android:id="@+id/civ2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/after_sale_icon"
app:haveRipple="true"
app:rippleOver="false" />
<!--imageview,点击效果默认是滤镜-->
<com.cy.necessaryview.rippleview.ClickImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/after_sale_icon" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--imageview,默认滤镜效果-->
<com.cy.necessaryview.rippleview.ClickImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/hg" />
<!--imageview,自定义亮度-->
<com.cy.necessaryview.rippleview.ClickImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/hg"
app:lightNumber="100" />
<!--imageview,这是点击变亮-->
<com.cy.necessaryview.rippleview.ClickImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:scaleType="centerCrop"
android:src="@drawable/hg"
app:lightOrDark="true" />
</LinearLayout>
</LinearLayout>
2.比例控件(默认是正方形,还可以自定义比例,继承自水波纹控件,默认有点击效果)

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_rectangle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<com.cy.necessaryview.rectangleview.RectangleImageView
android:id="@+id/riv"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/hg" />
<com.cy.necessaryview.rectangleview.RectangleLinearLayout
android:layout_width="100dp"
android:layout_height="100000dp"
android:layout_marginTop="10dp"
android:background="#f00">
</com.cy.necessaryview.rectangleview.RectangleLinearLayout>
<com.cy.necessaryview.rectangleview.RectangleRelativeLayout
android:layout_width="50dp"
android:layout_height="100000dp"
android:layout_marginTop="10dp"
android:background="#f78900"
app:heightWidthRatio="1.7">
</com.cy.necessaryview.rectangleview.RectangleRelativeLayout>
<com.cy.necessaryview.rectangleview.RectangleLinearLayout
android:layout_width="wrap_content"
android:layout_height="10000dp"
android:layout_marginTop="10dp"
android:background="#ff0">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="即热晶体管" />
</com.cy.necessaryview.rectangleview.RectangleLinearLayout>
<!--上面全是以宽为基准,下面全是以高为基准-->
<com.cy.necessaryview.rectangleview.RectangleFrameLayout
android:id="@+id/rfl"
android:layout_width="103330dp"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:background="#ff6990"
app:baseOnWidthOrHeight="false">
</com.cy.necessaryview.rectangleview.RectangleFrameLayout>
<com.cy.necessaryview.rectangleview.RectangleLinearLayout
android:layout_width="10000dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#00789f"
app:baseOnWidthOrHeight="false">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="即热晶\n体管\n近日刚进\n入提\n货价h\nit\n\n好几天假hi" />
</com.cy.necessaryview.rectangleview.RectangleLinearLayout>
</LinearLayout>
3.各种shape背景(圆角,画线,虚线、渐变、边框、圆形、椭圆,继承自水波纹控件,默认有点击效果)

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_round"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#eee"
android:orientation="horizontal"
android:padding="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<!--圆角+填充色-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
android:layout_width="100dp"
android:id="@+id/rsf"
android:layout_height="40dp"
app:colorFill="#fff"
app:radiusCorner="18dp">
</com.cy.necessaryview.shapeview.RecShapeFrameLayout>
<!--设置了background,没有设置填充色,圆角失效-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginTop="5dp"
android:background="#678798"
app:radiusCorner="5dp">
</com.cy.necessaryview.shapeview.RecShapeFrameLayout>
<!--设置填充色,圆角才生效-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:background="#f00"
app:colorFill="#956890"
app:radiusCorner="5dp">
</com.cy.necessaryview.shapeview.RecShapeFrameLayout>
<!--四个角的弧度-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="5dp"
app:colorFill="#456440"
app:radiusBottomLeft="40dp"
app:radiusBottomRight="30dp"
app:radiusTopLeft="10dp"
app:radiusTopRight="20dp">
</com.cy.necessaryview.shapeview.RecShapeFrameLayout>
<!--设置了4个圆角弧度,设置了radiusCorner,radiusCorner优先级更高-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="5dp"
app:colorFill="#943440"
app:radiusBottomLeft="40dp"
app:radiusBottomRight="30dp"
app:radiusCorner="5dp"
app:radiusTopLeft="10dp"
app:radiusTopRight="20dp">
</com.cy.necessaryview.shapeview.RecShapeFrameLayout>
<!--线性渐变,默认从左到右-->
<com.cy.necessaryview.shapeview.RecShapeFrameLayout
