Tôi muốn đặt hiệu ứng gợn lên chế độ xem văn bản và hình ảnh trong Android Studio. Tôi làm nó như thế nào?
Tôi muốn đặt hiệu ứng gợn lên chế độ xem văn bản và hình ảnh trong Android Studio. Tôi làm nó như thế nào?
Câu trả lời:
Tham chiếu: http://developer.android.com/training/m Material / meta.html ,
http://wiki.workrame.com/carget/android/android-xml/
<TextView
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
<ImageView
.
.
.
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
/>
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbc
Nếu bạn muốn Ripple được giới hạn theo kích thước của TextView / ImageView, hãy sử dụng:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(Tôi nghĩ rằng nó có vẻ tốt hơn)
selectableItemBackground
vsselectableItemBackgroundBorderless
Vui lòng tham khảo câu trả lời dưới đây cho hiệu ứng gợn.
Ripple trên Textview hoặc xem:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
Ripple trên Nút hoặc Imageview:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
là API 21+. Dưới đây bạn có thể chọn selectableItemBackground
để tránh sự cố tương thích
Bạn có thể sử dụng nền tảng android-ripple
Bắt đầu có hiệu lực
final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rippleBackground.startRippleAnimation();
}
});
Dừng hoạt hình:
rippleBackground.stopRippleAnimation();
<TextView
android:id="@+id/txt_banner"
android:layout_width="match_parent"
android:text="@string/banner"
android:gravity="center|left"
android:layout_below="@+id/title"
android:background="@drawable/ripple_effect"
android:paddingLeft="15dp"
android:textSize="15sp"
android:layout_height="45dp" />
thêm cái này vào drawable
<?xml version="1.0" encoding="utf-8"?>
<!--this ribble animation only working for >= android version 21-->
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/click_efect" />
thử cái này.
thử cái này. Điều này được làm việc cho tôi.
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
ngoài các câu trả lời ở trên là thêm tiêu điểm để tránh cảnh báo của trình soạn thảo UI
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
Trong trường hợp giải pháp được bình chọn tốt được đăng bởi @Bikesh M Annur ( tại đây ) không hiệu quả với bạn, hãy thử sử dụng:
<TextView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
<ImageView
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true" />
Ngoài ra, khi sử dụng android:clickable="true"
add android:focusable="true"
vì:
" Một widget được khai báo là có thể nhấp nhưng không được khai báo là có thể lấy được thì không thể truy cập được thông qua bàn phím. "
Thêm vào
android:clickable="true"
android:focusable="true"
Cho hiệu ứng Ripple
android:background="?attr/selectableItemBackgroundBorderless"
Cho hiệu ứng có thể lựa chọn
android:background="?android:attr/selectableItemBackground"
Đối với hiệu ứng nút
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
Hoặc bạn có thể thử sử dụng thư viện này (android 9+): RippleEffect
Hội nhập
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
Sử dụng:
<com.andexert.library.RippleView
android:id="@+id/more"
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:layout_toLeftOf="@+id/more2"
android:layout_margin="5dp"
rv_centered="true">
<ImageView
android:layout_width="?android:actionBarSize"
android:layout_height="?android:actionBarSize"
android:src="@android:drawable/ic_menu_edit"
android:layout_centerInParent="true"
android:padding="10dp"
android:background="@android:color/holo_blue_dark"/>
</com.andexert.library.RippleView>
selectableItemBackground
khi nhắm mục tiêu Android 4 trở lên.
cho gợn vòng tròn:
android:background="?attr/selectableItemBackgroundBorderless"
cho gợn hình chữ nhật:
android:background="?attr/selectableItemBackground"
Sử dụng thư viện. Đây là một trong số họ. Chỉ cần thêm phụ thuộc của nó và đặt mã bên dưới vào xml trước mỗi phần tử cần hiệu ứng gợn:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">