2015-02-13 2 views
2

Я пытаюсь создать кнопку в своем приложении для Android, у которого есть собственный фон и центрирован на экране. Я уже сделал это с помощью Android Studio, но теперь мне нужно сделать это с помощью RubyMotion. Вот как кнопка должна выглядеть следующим образомОбычная кнопка RubyMotion Android

here

Вот мой файл main_activity.rb для RubyMotion:

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 или альтернативу.

ответ

0

Достигает ли это того, что вы ищете?

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 
+0

Эй, Саймон! Это был очень старый проект, и у меня уже есть настройка, чтобы проверить его. Спасибо, что ответили – sarora

Смежные вопросы