我正在使用Xamarin.forms制作应用。 你可能知道形式'如果您尝试过按钮,则按钮不足以用作图像按钮。
所以我使用Image作为按钮并添加了gesturerecogniger。它工作正常。 好的是我可以像使用Image一样使用所有Image的可绑定属性。 (比如' Aspect属性'等等)
唯一的问题是Android按钮在按下时会产生声音效果。 我没有。
如何在Android上播放默认按键音?
[另一次尝试]
我尝试制作布局并将Image和空虚按钮放在上面。 但是,如果我这样做,我不能使用Image或Button的任何属性,除非我手动链接它。
所以我认为这不是正确的方法。
感谢。
答案 0 :(得分:9)
Xamarin.Android
var root = FindViewById<View>(Android.Resource.Id.Content);
root.PlaySoundEffect(SoundEffects.Click);
Android playSoundEffect(int soundConstant)
Xamarin.iOS
UIDevice.CurrentDevice.PlayInputClick();
Xamarin.Forms
来自Dependency Service:public interface ISound
{
void KeyboardClick () ;
}
然后实现平台特定功能。
的iOS:
public void KeyboardClick()
{
UIDevice.CurrentDevice.PlayInputClick();
}
机器人:
public View root;
public void KeyboardClick()
{
if (root == null)
{
root = FindViewById<View>(Android.Resource.Id.Content);
}
root.PlaySoundEffect(SoundEffects.Click);
}
答案 1 :(得分:0)
看看以下内容:
MonoTouch.UIKit.IUIInputViewAudioFeedback
与UIInputViewAudioFeedback_Extensions类一起构成UIInputViewAudioFeedback协议的接口。 另请参阅:IUIInputViewAudioFeedback
https://developer.xamarin.com/api/type/MonoTouch.UIKit.IUIInputViewAudioFeedback/
你会想要这样的东西(未经测试):
public void SomeButtonFunction()
{
SomeBtn.TouchUpInside += (s, e) => {
UIDevice.CurrentDevice.PlayInputClick();
};
}
答案 2 :(得分:0)
Xamarin表单:
PCL界面:
interface ISoundService { void Click(); }
点击处理程序:
void Handle_OnClick(object sender, EventArgs e) {
DependencyService.Get<ISoundService>().Click();
}
Android:
public class MainActivity {
static MainActivity Instance { get; private set; }
OnCreate() {
Instance = this;
}
}
class SoundService : ISoundService {
public void Click() {
var activity = MainActivity.Instance;
var view = activity.FindViewById<View>(
Android.Resource.Id.Content);
view.PlaySoundEffect(SoundEffects.Click);
}
}