gpt4 book ai didi

java - 获取 ImageView 可绘制 ID 并使用 AsyncTask 更改它

转载 作者:行者123 更新时间:2023-12-01 04:20:01 25 4
gpt4 key购买 nike

我想要做的:获取 ImageView 的 src 的 id,将其与两个可绘制对象的 id 进行比较,然后使用 AsyncTask 交换它们(只是因为我想了解它是如何工作的)。我在这里读过类似的问题,到目前为止,这就是我所得到的:

public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView image = (ImageView) findViewById(R.id.img);
Integer integer = (Integer) image.getTag();
}

private class cambiarImagen extends AsyncTask<Integer, Integer, Integer> {
protected void onPreExecute() {
ImageView image = (ImageView) findViewById(R.id.img);
Integer integer = (Integer) image.getTag();
int img1 = R.drawable.zapato;
int img2 = R.drawable.zapatod;
}

@Override
protected Integer doInBackground(Integer... values) {
// parte logica
int num = values[0];
int zapato = values[1];
int zapatod = values[2];
if (num == zapato) {
num = zapatod;
} else if (num == zapatod) {
num = zapato;
}
return num;
}
protected Void onPostExecute(Integer... values) {
int num = values[0];
ImageView image = (ImageView) findViewById(R.id.img);
image.setTag(num);
return null;
}
}

当然这是行不通的。1.我不明白如何获取ImageView作为其src的drawable的id。2.我不明白AsyncTask中的参数是如何传递的; onPreExecute 应该接收 UI 内容,doInbackground 应该接收它以进行比较并返回应该设置为 ImageView 的可绘制 int,onPreExecute 应该将其设置为 ImageView。

最佳答案

I don't understand how to get the id of the drawable that ImageView has as its src.

我没有这样做,所以可能不起作用,但你应该能够使用

imageView.getDrawable().getId();

I don't understand how the params are passed in AsyncTask;

无论您在 task.execute() 中传递什么内容,都会由 doInBackground() 接收。如果您调用publishProgress(),那么发送到那里的任何参数都会被onProgressUpdate()接收。 doInBackground()中返回的数据由onPostExecute()接收。

AsyncTask,只是让你知道,这不需要,但我知道你说过你想学习如何使用它。除了这两件事之外,我对您具体遇到的问题有点困惑,所以如果我错过了什么,请详细说明。

ImageView Docs

AsyncTask Docs

AsyncTask Example (如果有帮助的话)

关于java - 获取 ImageView 可绘制 ID 并使用 AsyncTask 更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19031023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com