gpt4 book ai didi

java - 根据两个旋转器更改图像

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

我花了大约 3 天的时间寻找这个答案,最后决定自己创建这个问题。

基本上我有一个带有两个旋转器的 Activity 。一是头发的类型,二是头发的颜色。你知道我要说的是什么了。我希望能够根据所选的两个项目来更改图片(头部)。

如果我没有理解,这里有一个例子:

  1. Activity 已加载(旋转器设置为“秃头”和“黑色”)
    • 头发秃了。
  2. 将头发类型更改为“男性短发”
    • 头发变为黑色短发。
  3. 将颜色更改为“金发”
    • 头发变为男性金色短发。

但是第3步不起作用!!!

这段代码太长了,但大部分都是重复的内容,所以不应该花太长时间来理解:)

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.head_zoom);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Spinner hairSpinner = (Spinner) findViewById(R.id.hairSpinner);
hairSpinner.setOnItemSelectedListener(this);
List<String> hairTypeArray = new ArrayList<String>();
hairTypeArray.add("Bald");
hairTypeArray.add("Female Short");
hairTypeArray.add("Female Medium");
hairTypeArray.add("Female Long");
hairTypeArray.add("Male Short");
hairTypeArray.add("Male Medium");
hairTypeArray.add("Male Long");
ArrayAdapter<String> hairTypeAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, hairTypeArray);
hairTypeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
hairSpinner.setAdapter(hairTypeAdapter);

Spinner hairColor = (Spinner) findViewById(R.id.hairColor);
hairColor.setOnItemSelectedListener(this);
List<String> hairColorArray = new ArrayList<>();
hairColorArray.add("Black");
hairColorArray.add("Blonde");
hairColorArray.add("Blue");
hairColorArray.add("Brown");
hairColorArray.add("Ginger");
hairColorArray.add("Green");
hairColorArray.add("Red");
ArrayAdapter<String> hairColorAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, hairColorArray);
hairColorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
hairColor.setAdapter(hairColorAdapter);
}

public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
String item = parent.getItemAtPosition(position).toString();
String type = "Bald", color = "Black";
//Toast.makeText(parent.getContext(), "Selected: "+item, Toast.LENGTH_LONG).show();
Spinner spinner = (Spinner) parent;
if(spinner.getId() == R.id.hairSpinner) {
type = item;
}
else {
color = item;
}

final ImageView imageView = (ImageView)findViewById(R.id.head);
switch(type){
case "Bald":
imageView.setImageResource((R.drawable.sw_head));
break;
case "Female Short":
if(color=="Black")
imageView.setImageResource(R.drawable.fhair_short_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.fhair_short_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.fhair_short_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.fhair_short_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.fhair_short_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.fhair_short_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.fhair_short_red);
break;
case "Female Medium":
if(color=="Black")
imageView.setImageResource(R.drawable.fhair_med_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.fhair_med_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.fhair_med_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.fhair_med_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.fhair_med_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.fhair_med_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.fhair_med_red);
break;
case "Female Long":
if(color=="Black")
imageView.setImageResource(R.drawable.fhair_long_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.fhair_long_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.fhair_long_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.fhair_long_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.fhair_long_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.fhair_long_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.fhair_long_red);
break;
case "Male Short":
if(color=="Black")
imageView.setImageResource(R.drawable.mhair_short_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.mhair_short_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.mhair_short_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.mhair_short_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.mhair_short_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.mhair_short_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.mhair_short_red);
break;
case "Male Medium":
if(color=="Black")
imageView.setImageResource(R.drawable.mhair_med_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.mhair_med_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.mhair_med_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.mhair_med_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.mhair_med_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.mhair_med_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.mhair_med_red);
break;
case "Male Long":
if(color=="Black")
imageView.setImageResource(R.drawable.mhair_long_black);
else if(color=="Blonde")
imageView.setImageResource(R.drawable.mhair_long_blonde);
else if(color=="Blue")
imageView.setImageResource(R.drawable.mhair_long_blue);
else if(color=="Brown")
imageView.setImageResource(R.drawable.mhair_long_brown);
else if(color=="Ginger")
imageView.setImageResource(R.drawable.mhair_long_ginger);
else if(color=="Green")
imageView.setImageResource(R.drawable.mhair_long_green);
else if(color=="Red")
imageView.setImageResource(R.drawable.mhair_long_red);
break;
}
}

public void onNothingSelected(AdapterView<?> parent){

}

问题是,每当从任一微调器中选择一个项目时,它都会激活监听器,但不会考虑另一个微调器。因此,如果我改变头发颜色,它会重置为秃头,因为

    String type = "Bald", color = "Black";

感谢您提供的任何帮助,谢谢。

最佳答案

您必须将开关分成两个不同的开关,一个用于发型,另一个用于头发颜色。您现在要做的是确定发型并休息一下,而不是颜色方面。

        if (view == hairSpinner){
switch (item){
case "Bald":
case "Female Short":
case "Female Medium":
case "Female Long":
case "Male Short":
case "Male Medium":
case "Male Long":
type = item;
break;
}
}
else{
switch (item){
case "Black":
case "Blonde":
case "Blue":
case "Brown":
case "Ginger":
case "Green":
case "Red":
color = item;
break;
}
}

关于java - 根据两个旋转器更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36847231/

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