Java 为什么我不能使用;SetImageResource";要更改Android Studio中ImageView使用的可绘制图形?
我正在学习如何为Android开发应用程序,我通过学校课程熟悉Java。目前,我Java 为什么我不能使用;SetImageResource";要更改Android Studio中ImageView使用的可绘制图形?,java,android,xml,Java,Android,Xml,我正在学习如何为Android开发应用程序,我通过学校课程熟悉Java。目前,我正在开发一个小的TicTacToe应用程序用于锻炼,我试图显示一个十字而不是一个圆圈,但Android Studio无法编译setImageResource`命令,即使在每个该死的在线论坛上都推荐这种方法 我已经尝试过像setsetbackgroundresource这样的方法,但所有这些都没有达到我的目的 Java代码: public void click(View pView){ if(getActiv
正在开发一个小的TicTacToe应用程序用于锻炼,我试图显示一个十字而不是一个圆圈,但Android Studio无法编译
setImageResource`命令,即使在每个该死的在线论坛上都推荐这种方法
我已经尝试过像setsetbackgroundresource
这样的方法,但所有这些都没有达到我的目的
Java代码:
public void click(View pView){
if(getActivePlayer()== 1){
if(s1.getSymbol().equals("cross")){
pView.setImageResource(R.drawable.circle); //claims cannot Resolve method 'setIMageRecource(int)'
}
else{
pView.setImageResource(R.drawable.cross); //claims cannot Resolve method 'setIMageRecource(int)'
}
}
else if(getActivePlayer()==2){
if(s2.getSymbol().equals("circle")){
pView.setImageResource(R.drawable.circle); //claims cannot Resolve method 'setIMageRecource(int)'
}
else{
pView.setImageResource(R.drawable.cross); //claims cannot Resolve method 'setIMageRecource(int)'
}
}
pView.setY(-1000);
pView.setAlpha(1);
pView.animate().translationYBy(1000).setDuration(1000);
if (getActivePlayer() == 1){
setActivePlayer(2);
String checker = "aktive player ist gerade" + getActivePlayer();
Log.i("INfo", checker);
}
else{
setActivePlayer(1);
String checker = "aktive player ist gerade" + getActivePlayer();
Log.i("INfo", checker);
}
}
在XML中:
<ImageView
android:id="@+id/field4"
android:layout_width="120dp"
android:layout_height="120dp"
android:onClick="click"
app:srcCompat="@drawable/circle" />
您可以使用ImageView.setImageDrawable(Context impact.getDrawable(mContext,R.drawable.cross))
这里,mContext被全局声明为您的活动引用。您需要像这样将
视图
转换为图像视图
((ImageView) pView).setImageResource(R.drawable.cross);
你考虑过拼写正确吗?你找到解决问题的方法了吗?请务必让我们不断更新或接受正确答案。这是一个完美的解决方案,但实际上我仍然不明白为什么不允许我对视图本身进行强制转换…@Aaron您不能直接调用setImageResource,因为您提供了带有
视图的click
方法setImageResource
是类ImageView
的一种方法。您可以将方法的签名更改为public void click(ImageView pView)
。无论在何处调用此方法,都需要为其提供ImageView
。同样,当您检索视图R.id.field4
时,您应该这样做ImageView pView=(ImageView)view.findViewById(R.id.field4)代码>