我创建了ImageView
,我想对其采取两项措施:
首先:当我按下ImageView
它的背景时,为此,我创建了Drawable Resource File
名为imgpressed.xml
并在ImageView布局中添加了属性android:background="imgpressed
第二:如果我点击它(Action UP),Toast
应出现在屏幕上,为此,我在Java Code中创建了方法SetOnClickListener
但是注意到当我在imageView中添加属性android:clickable时,代码java中的OnClickListener不起作用,如果我在Java代码中删除了属性OnClickListener,那么......
这是我的代码:
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"
/>
&#13;
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>
&#13;
代码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();
}
});
}
}
答案 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();
}