android - RubyMotion Android 自定义按钮

标签 android ruby button rubymotion

我正在尝试在我的 Android 应用程序中创建一个按钮,该按钮具有自定义背景并位于屏幕中央。我已经使用 Android Studio 这样做了,但现在我必须使用 RubyMotion 来做。这是按钮应该是这样的

here

这是我的 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/

相关文章:

Ruby 数组操作内部方法

ruby-on-rails - 无法捆绑安装 ruby​​ - 卡住获取 https ://rubygems. org/

java - 如何更改未单击的按钮的背景颜色?

javascript - 如何制作 Bootstrap 日期选择器按钮

android - Gmail API 限制

Android线程等待直到可见

android - 将应用程序上传到 android-market 时出错

mysql - 多数据库实时切换

java - 为 WebView 文本输入禁用 Android 键盘的 'Go' 按钮

python - 如何将回车键绑定(bind)到 tkinter 按钮