Вы можете определить фон сердца с помощью vector
и path
:
<?xml version="1.0" encoding="utf-8" ?>
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="250dp"
android:width="250dp"
android:viewportHeight="32"
android:viewportWidth="32" >
<path
android:name="heart"
android:fillColor="#f9f7f7"
android:strokeColor="#090808"
android:strokeWidth="1"
android:pathData="M20.5,9.5
c-1.955,0,-3.83,1.268,-4.5,3
c-0.67,-1.732,-2.547,-3,-4.5,-3
C8.957,9.5,7,11.432,7,14
c0,3.53,3.793,6.257,9,11.5
c5.207,-5.242,9,-7.97,9,-11.5
C25,11.432,23.043,9.5,20.5,9.5z"/>
</vector>
Здесь , я разместил свою демонстрацию на github, вы можете увидеть кнопку с selector
фоном, которая позволяет менять фон кнопки с состоянием кнопки, и другую кнопку с фоном SVG.
Обновление:
Я добавил анимацию на кнопку.
private void Mbt_Click(object sender, System.EventArgs e)
{
if (isClick)
{
mbt.SetBackgroundResource(Resource.Drawable.heart);
isClick = false;
}else {
mbt.SetBackgroundResource(Resource.Drawable.heart_press);
ObjectAnimator animator = ObjectAnimator.OfFloat(mbt, "scaleY", 1f, 1.2f, 1f);
animator.SetDuration(1000);
animator.Start();
ObjectAnimator animator1 = ObjectAnimator.OfFloat(mbt, "scaleX", 1f, 1.2f, 1f);
animator1.SetDuration(1000);
animator1.Start();
isClick = true;
}
}