我正在尝试在我的Android应用中创建一个具有自定义背景并位于屏幕中央的按钮。我已经使用Android Studio做到了,但是现在我必须使用RubyMotion。这应该是按钮的外观,如下所示
这是我的RubyMotion的main_activity.rb文件:
class MainActivity < Android::App::Activity
def onClick(view)
if @button.text == "hello"
@button.text = "world"
else
@button.text = "hello"
end
end
def onCreate(savedInstanceState)
super
relativeLayout = Android::Widget::RelativeLayout.new(self)
@button = Android::Widget::Button.new(self)
@button.text = "hello"
@button.onClickListener = self
relativeLayout.addView(@button)
self.contentView = relativeLayout
end
end
这只是添加了一个按钮,单击该按钮时其文本会更改。但是我找不到一种在屏幕上居中更改背景的方法。使用Android Studio,我将自定义形状创建为可绘制对象,然后将按钮背景设置为该形状。不确定如何翻译RubyMotion代码或其他方法。
这是否达到您想要的目的?
class MainActivity < Android::App::Activity
def onCreate(savedInstanceState)
super
relativeLayout = Android::Widget::RelativeLayout.new(self)
@button = Android::Widget::Button.new(self)
@button.text = "hello"
@button.onClickListener = self
@button.setBackgroundResource(
self.resources.getIdentifier('android_normal', 'drawable', self.packageName)
)
params = Android::Widget::RelativeLayout::LayoutParams.new(
Android::Widget::RelativeLayout::LayoutParams::WRAP_CONTENT,
Android::Widget::RelativeLayout::LayoutParams::WRAP_CONTENT)
params.addRule(Android::Widget::RelativeLayout::CENTER_HORIZONTAL)
params.addRule(Android::Widget::RelativeLayout::CENTER_VERTICAL)
relativeLayout.addView(@button, params)
self.contentView = relativeLayout
end
def onClick(view)
puts 'click'
end
end