2011-07-04 16 views
0

だから私は赤ちゃんのステップでこのものを考え出しています。そして、私が望む方法をトグルするためにボタンを手に入れました。しかし、今私はボタンを追加したい。Android Java ImageButtonメソッドヘルプ

 `public class Menu extends Activity{ 
     ImageButton select;  
     int isClicked = 0; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
       // TODO Auto-generated method stub 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 

       select = (ImageButton)findViewById(R.id.select); 
     select.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 
        if (isClicked == 0){ 
         select.setImageResource(R.drawable.select_pressed); 
         isClicked = 1; 
        } 
        else{ 
         select.setImageResource(R.drawable.select); 
         isClicked = 0; 
        } 
       }}); 
      } 
      }` 

だから、ImageButtonメソッドをコピーするとします。新しいボタンのコードを使うつもりなら、どこに挿入すればいいですか?

`<ImageButton 
android:src="@drawable/select" 
android:id="@+id/select" 
android:layout_height="30dp" 
android:layout_width="120dp" 
android:background="@null" 
android:layout_alignParentLeft="true" 
android:layout_alignParentBottom="true"> 
    </ImageButton>` 
+0

、あなたはアンドロイド書く理由です:だけではなく、これがないと宣言 – Marmoy

+0

@videreからbackground属性を省略することで、それは====ように参照画像の下にアンダーレイを残し背景=「ヌル@」 =========画像==============ヌルはアンダーレイを削除するだけです。私はそれが私がやっていることよりももっと効率的なやり方をしていると確信していますが、私は結局それを理解するでしょう。 – Cataroux

答えて

1

ボタンのタグ属性を使用して状態を保存できます。あなたがアプリケーションコンテキストに多数ImageButtonsの状態を保存せずに、それぞれのImageButtonのclicklistenerから呼び出すことができます

public void changeState(View v) { 
        if (v.getTag() == "false"){ 
         ((ImageButton)v).setImageResource(R.drawable.select_pressed); 
         v.setTag("true"); 
        } 
        else{ 
         ((ImageButton)v).setImageResource(R.drawable.select); 
         v.setTag("false"); 
        } 
       }}); 

この方法:次に、あなたは、このような別の方法であなたの状態ロジックを置くことができます。好奇心のうち

0

イメージボタンは、main.xmlファイルのグラフィカルレイアウトエディタを使用して簡単に作成できます。 新しいボタン用の新しい画像ボタンオブジェクトを作成し、完了したときにonCreate()関数のオンクリックリスナーを指定します。

+0

ああ、私は知っているが、私はPhotoshopで作ったカスタムボタンを使いたい。私はそれを持っているので、状態をクリックすると白が薄くなり、再びクリックされるまでその状態にとどまります。私のカスタムトグルボタンの方法。 – Cataroux

0

あなたのアプローチの代わりに、Androidには、ビューの状態に応じて自動的に背景リソースを変更できるセレクタというものがあります。セレクタは、個別の描画可能XMLファイルで定義され、状態を使用するビューのXML宣言から参照されます。たとえば、次のように セレクター(android_button.xml):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/android_pressed" 
      android:state_pressed="true" /> 
    <item android:drawable="@drawable/android_focused" 
      android:state_focused="true" /> 
    <item android:drawable="@drawable/android_normal" /> 
</selector> 

ボタン:あなたはまだ、各ボタンのclicklistenerを実装する必要がありますが、あなたはあなたが再利用できるセレクタを持つことになります

<Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:background="@drawable/android_button" /> 

必要なすべてのボタン、プレゼンテーションロジックがアプリのビジネスロジックから分離されています。

この回答のソースコードは、http://developer.android.com/resources/tutorials/views/hello-formstuff.html#CustomButton から直接入手できます。ここで詳しい説明を読むことができます。

+1

ボタンの状態は保存されません。それをクリックすると、ボタンを離すとボタンが通常の状態に戻ります。右?私はそれをあなたがそれをクリックして設定して、状態が変化し、白い画像に保存する方法です。私はあなたを見せてくれるが、2つの評判があるまで画像を投稿することはできない(-_-) – Cataroux

+0

@Cataroux - Ok、私はそれを得る – Marmoy

+0

xmlのImageButton部分も投稿した。 – Cataroux

関連する問題