我想在按钮点击上添加一个涟漪动画.我确实喜欢下面但它需要minSdKVersion到21.
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
按键
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
Run Code Online (Sandbox Code Playgroud)
我想让它向后兼容设计库.
怎么做到这一点?
最近,我读了这些帖子:
但是,他们都没有给我一个关于创建新的详细示例FloatingActionButton.很难理解,我问这个问题.
谁能给我一个关于它的例子?
任何帮助都很值得赞赏.提前致谢.
编辑
我刚刚在FloatingActionButton(FAB)上发现了一些问题,我想改进另一个答案.请参阅下面的答案.
android android-support-library floating-action-button android-design-library
我试图了解如何为按钮和其他视图实现"涟漪效应 - 触摸反馈".我查看了与SO上的Ripple触摸效果相关的问题,并对其进行了一些了解.我能够使用这个java代码成功获得涟漪效应.
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RadialGradient;
import android.graphics.Region;
import android.graphics.Shader;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.AccelerateInterpolator;
import android.widget.Button;
public class MyButton extends Button {
private float mDownX;
private float mDownY;
private float mRadius;
private Paint mPaint;
public MyButton(final Context context) {
super(context);
init();
}
public MyButton(final Context context, final AttributeSet attrs) {
super(context, attrs);
init();
}
public MyButton(final Context context, final AttributeSet attrs,
final int defStyle) { …Run Code Online (Sandbox Code Playgroud) xml android material-design rippledrawable android-5.0-lollipop
像下面的东西,但它不起作用.如果我将可绘制颜色切换为蓝色,它可以工作.
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:drawable="@android:color/transparent"/>
</ripple>
Run Code Online (Sandbox Code Playgroud) 如何申请像连锁反应此
我已将依赖项放在app/build.gradle中
应用程序/的build.gradle
dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}
Run Code Online (Sandbox Code Playgroud)
的build.gradle
allprojects{
repositories{
jcenter()
maven(url "https://jitpack.io" }
Run Code Online (Sandbox Code Playgroud)
XML文件:
<com.andexert.library.RippleView
android:id="@+id/rect1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/enterButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save your user name" />
</com.andexert.library.RippleView>
Run Code Online (Sandbox Code Playgroud)
Java类文件
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.save_user);
editText=(EditText) findViewById(R.id.userNameEditText);
button=(Button) findViewById(R.id.enterButton);
sharedPreferences=getSharedPreferences(SHARED_NAME_STRING, MODE_PRIVATE);
String userNameString=sharedPreferences.getString(USER_NAME_STRING, "");
editText.setText(userNameString);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string=editText.getText().toString();
Intent intent=new Intent(SaveUser.this, MainActivity.class);
intent.putExtra("user", string);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString(USER_NAME_STRING, string);
editor.commit();
startActivity(intent);
}
});
}
Run Code Online (Sandbox Code Playgroud)
它工作但我的问题是在涟漪效果完成之前打开另一个活动,当我按下后退按钮时剩余的涟漪完成.我该怎么解决?