2015-12-25 2 views
0

я создал ImageView и я хочу сделать два действия на него:Настройка событий на изображение Вид

Первое: когда я нажимаю на ImageView это chnages его фона, чтобы сделать это, я создал Drawable Resource File имени imgpressed.xml и добавлен атрибут android:background="imgpressed в ImageView Layout

во-вторых: Если я нажимаю на него (Действие UP), Toast должен появиться на экране, чтобы сделать это, я создал метод SetOnClickListener в Java кодекса , но заметил, что, когда я добавить атрибут андроид: clickable в imageView, OnClickListener в код Java не работает, и если я удалить атрибут OnClickListener в работах Java Code ....

что мои коды:

imageView Планировка:

<ImageView 
 
     android:clickable="true" 
 
     android:background="@drawable/imgpressed" 
 
     android:layout_width="100dp" 
 
     android:layout_height="100dp" 
 
     android:id="@+id/imageView" 
 
     android:contentDescription="@string/pauseimgS" 
 
     android:focusableInTouchMode="false" 
 
     android:background="@drawable/pauseimg" 
 
     android:layout_centerVertical="true" 
 
     android:layout_centerHorizontal="true" 
 
     />

imgpressed.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 
    <item android:state_pressed="false"> 
 
     <bitmap android:src="@drawable/pauseimg"/> 
 
    </item> 
 
    <item android:state_pressed="true"> 
 
     <bitmap android:src="@drawable/pauseimgclicked"/> 
 
    </item> 
 
</selector>

код Java Main Activity

public class game extends AppCompatActivity { 
    RelativeLayout Rel_main_game; 
    View pauseButton; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 

     LayoutInflater myInflater = (LayoutInflater) getApplicationContext().getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE); 
     pauseButton = myInflater.inflate(R.layout.pause, null, false); 

     Rel_main_game = (RelativeLayout) findViewById(R.id.relativeLayout); 
     Rel_main_game.addView(pauseButton); 

     pauseButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(game.this,"Thank You", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

} 
+1

Какой вопрос? –

+0

Я не могу изменить фон и показать Тост за одно и то же время ... только одно событие запущено –

ответ

0

почему вы использовали два фона для ImageView ?!

вы должны использовать android:src="pauseimg" для источника изображений и android:background="@drawable/imgpressed" для изменения фона

также для создания вашего ImageView в ссылке вы можете использовать android:onClick="onImageClick", а затем в своей деятельности:

public void onImageClick(View view) { 
    Toast.makeText(game.this,"Thank You", Toast.LENGTH_SHORT).show(); 
} 
+0

атрибут src - это просто ошибка орфографии, когда я писал это сообщение ... когда я пытаюсь найти решение, которое является ошибкой сообщения: java.lang.IllegalStateException: Не удалось найти метод onImageClick (View) в родительском или предком Контекст для android: атрибут onClick, определенный в классе вида android.widget.ImageView с идентификатором 'imageView' –

+0

Я думаю, потому что ImageView завышен –

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