ปัญหาหรือคำขอดึงใด ๆ จะไม่ได้รับการแก้ไข โปรดพิจารณาฟอร์กเวอร์ชันของคุณเองหากจำเป็นต้องเปลี่ยนแปลง
Wrapper เอฟเฟกต์ระลอกคลื่นสำหรับ Android Views
compile ' com.balysv:material-ripple:1.0.2 '
ตรวจสอบหมายเลขเวอร์ชันล่าสุดบนวิดเจ็ตด้านล่างหรือไปที่ข่าวประชาสัมพันธ์
ใช้ตัวเริ่มต้นแบบคงที่บน View
ของคุณ (ดูแอตทริบิวต์ xml
ด้านล่างสำหรับการปรับแต่ง)
MaterialRippleLayout . on ( view )
. rippleColor ( Color . BLACK )
. create ();
หรือล้อม View
ของคุณด้วย MaterialRippleLayout
ในไฟล์เลย์เอาต์ของคุณ:
< com .balysv.materialripple.MaterialRippleLayout
android : id = " @+id/ripple "
android : layout_width = " match_parent "
android : layout_height = " wrap_content " >
< Button
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
android : layout_gravity = " center "
android : text = " Button inside a ripple " />
</ com .balysv.materialripple.MaterialRippleLayout>
หากใช้ใน AdapterView
คุณต้องตั้งค่า rippleInAdapter
เป็น true
กำหนดค่าโดยใช้แอตทริบิวต์ xml หรือตัวตั้งค่าในโค้ด:
app : mrl_rippleOverlay = "true" // if true, ripple is drawn in foreground; false - background
app : mrl_rippleColor = "#ff0000" // color of ripple
app : mrl_rippleAlpha = "0.1" // alpha of ripple
app : mrl_rippleDimension = "10dp" // radius of hover and starting ripple
app : mrl_rippleHover = "true" // if true, a hover effect is drawn when view is touched
app : mrl_rippleRoundedCorners = "10dp" // radius of corners of ripples. Note: it uses software rendering pipeline for API 17 and below
app : mrl_rippleInAdapter = "true" // if true, MaterialRippleLayout will optimize for use in AdapterViews
app : mrl_rippleDuration = "350" // duration of ripple animation
app : mrl_rippleFadeDuration = "75" // duration of fade out effect on ripple
app : mrl_rippleDelayClick = "true" // if true, delays calls to OnClickListeners until ripple effect ends
app : mrl_rippleBackground = "#FFFFFF" // background under ripple drawable; used with rippleOverlay="false"
app : mrl_ripplePersistent = "true" // if true, ripple background color persists after animation, until setRadius(0) is called
ตั้งค่า OnClickListener
เป็น MaterialRippleLayout
:
findViewById ( R . id . ripple ). setOnClickListener ( new View . OnClickListener () {
@ Override public void onClick ( View v ) {
// handle me
}
});
หรือหากใช้ใน AdapterView
เพียงใช้ OnItemClickListener
สำหรับนักพัฒนาที่โชคร้ายที่ต้องการรองรับเวอร์ชันเก่ากว่า 14 มีวิธีแก้ไข
คุณสามารถใช้ไลบรารีนี้เพิ่มเติมจาก backport ภาพเคลื่อนไหวของ Jake Wharton (http://nineoldandroids.com/) โดยเปลี่ยนการนำเข้าจาก import android.animation.*;
ถึง: import com.nineoldandroids.animation.*;
, import android.util.Property
; เพื่อ import com.nineoldandroids.util.Property;
และในไฟล์ MaterialRippleLayout.java การเรียกใช้ฟังก์ชัน shouldDelayChildPressedState()
เฉพาะในกรณีที่คุณใช้ api มากกว่า 14
บาลิส วาเลนตูเควิซิอุส
Copyright 2015 Balys Valentukevicius
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.