我正在尝试在我的 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
关于android - RubyMotion Android 自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508796/