Java 基于两个微调器更改图像
我花了大约3天的时间寻找这个答案,最后我决定自己创造这个问题 基本上我有一个活动,上面有两个旋转器。一个是头发的类型,另一个是头发的颜色。你知道我要说什么了。我希望能够根据所选的两个项目更改图片(头部) 万一我说不通,举个例子:Java 基于两个微调器更改图像,java,android,image,Java,Android,Image,我花了大约3天的时间寻找这个答案,最后我决定自己创造这个问题 基本上我有一个活动,上面有两个旋转器。一个是头发的类型,另一个是头发的颜色。你知道我要说什么了。我希望能够根据所选的两个项目更改图片(头部) 万一我说不通,举个例子: 已加载活动(微调器设置为“秃顶”和“黑色”) 头发是秃顶的 将头发类型更改为“男性短发” 头发变为黑色的男性短发 将颜色更改为“金发” 头发变为短的金色男性头发 但是第三步不行 这段代码太长了,但大部分代码都是重复的,所以不应该花太长时间来理解:) 非常感谢
- 头发是秃顶的
- 头发变为黑色的男性短发
- 头发变为短的金色男性头发
非常感谢您提供的任何帮助,谢谢。您必须将开关分为两个不同的开关,一个用于发型,另一个用于发型。您现在要做的是获得发型和休息,而不是颜色方面
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;
}
}
你必须将开关分为两个不同的开关,一个用于发型,另一个用于发型。你现在要做的是得到发型和休息,而不是颜色方面
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;
}
}
杰拉尔多的答案在你的情况下是正确的。但这将是一个非常长的时间,因为你有很多类型和颜色,而且它不会是非常可定制的。
如果我是你,我会尝试为该类型创建可绘制样式(只有形状,没有颜色),以及颜色的可绘制性。在这种情况下,您可以轻松地将颜色应用于类型,并将类型应用于颜色,只需两个简单的变量即可识别当前类型和当前颜色。杰拉尔多的答案在您的情况下是正确的答案。但这将是一个非常长的时间,因为您有很多类型和颜色,并且不会非常复杂可省略。
如果我是你,我会尝试为该类型创建可绘制样式(只有形状,没有颜色),以及颜色可绘制。在这种情况下,您可以轻松地将颜色应用于类型,并将类型应用于颜色,只需两个简单的变量即可识别当前类型和当前颜色。David您是对的,而且他甚至不需要使用开关,因为下一个将具有相同的效果
String type=null;
String color=null;
if (view==hairSpinner)
type = parent.getItemAtPosition(position).toString();
else
color = parent.getItemAtPosition(position).toString();
大卫:你是对的,而且他甚至不需要使用开关,因为下一个开关也会有同样的效果
String type=null;
String color=null;
if (view==hairSpinner)
type = parent.getItemAtPosition(position).toString();
else
color = parent.getItemAtPosition(position).toString();
我的意思是这样的:
public class Test
extends AppCompatActivity
implements OnItemSelectedListener{
private Spinner hairSpinner;
private Spinner hairColor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
hairSpinner = (Spinner) findViewById(R.id.hairSpinner);
...
hairColor = (Spinner) findViewById(R.id.hairColor);
...
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
String type=null;
String color=null;
if (view==hairSpinner)
type = parent.getItemAtPosition(position).toString();
else
color = parent.getItemAtPosition(position).toString();
}
公共类测试
扩展AppCompative活动
实现MSelectedListener{
私人纺纱工;
私人旋转发型;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
hairSpinner=(Spinner)findViewById(R.id.hairSpinner);
...
hairColor=(微调器)findviewbyd(R.id.hairColor);
...
}
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串类型=null;
字符串颜色=空;
如果(视图==头发微调器)
type=parent.getItemAtPosition(position.toString();
其他的
color=parent.getItemAtPosition(position.toString();
}
}我的意思是这样的:
public class Test
extends AppCompatActivity
implements OnItemSelectedListener{
private Spinner hairSpinner;
private Spinner hairColor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
hairSpinner = (Spinner) findViewById(R.id.hairSpinner);
...
hairColor = (Spinner) findViewById(R.id.hairColor);
...
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
String type=null;
String color=null;
if (view==hairSpinner)
type = parent.getItemAtPosition(position).toString();
else
color = parent.getItemAtPosition(position).toString();
}
公共类测试
扩展AppCompative活动
实现MSelectedListener{
私人纺纱工;
私人旋转发型;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
hairSpinner=(Spinner)findViewById(R.id.hairSpinner);
...
hairColor=(微调器)findviewbyd(R.id.hairColor);
...
}
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串类型=null;
字符串颜色=空;
如果(视图==头发微调器)
type=parent.getItemAtPosition(position.toString();
其他的
color=parent.getItemAtPosition(position.toString();
}
}这一次它应该能工作
public class MainActivity
extends AppCompatActivity
implements OnItemSelectedListener{
private Spinner hairSpinner;
private Spinner hairColor;
private String type;
private String color;
private ImageView imageView;
private List<String> hairTypeArray = new ArrayList<String>();
private List<String> hairColorArray = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.head_zoom);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
imageView = (ImageView)findViewById(R.id.head);
type="Bald";
hairSpinner = (Spinner) findViewById(R.id.hairSpinner);
hairSpinner.setOnItemSelectedListener(this);
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);
color = "Black";
hairColor = (Spinner) findViewById(R.id.hairColor);
hairColor.setOnItemSelectedListener(this);
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){
if (parent.getId()==hairSpinner.getId())
type = hairTypeArray.get(position);
else
color = hairColorArray.get(position);
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){
}
公共类活动
扩展AppCompative活动
实现MSelectedListener{
私人纺纱工;
私人旋转发型;
私有字符串类型;
私有字符串颜色;
私人影像视图;
private List hairTypeArray=new ArrayList();
private List hairolorarray=new ArrayList();
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、头部缩放);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
imageView=(imageView)findViewById(R.id.head);
type=“Bald”;
hairSpinner=(Spinner)findViewById(R.id.hairSpinner);
hairSpinner.setonimselectedListener(此);
hairTypeArray.add(“Bald”);
hairTypeArray.添加(“女性短发”);
hairTypeArray.添加(“女性中位”);
hairTypeArray.添加(“女性长”);
hairTypeArray.add(“男性短发”);
hairTypeArray.添加(“男性中”);
hairTypeArray.add(“男性长”);
ArrayAdapter hairTypeAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项,hairTypeArray);
hairTypeAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
hairSpinner.setAdapter(hairTypeAdapter);
color=“黑色”;
hairColor=(微调器)findviewbyd(R.id.hairColor);
hairColor.setOnItemSelectedListener(此);
添加(“黑色”);
头发颜色。添加(“金发”);
添加(“蓝色”);
添加(“棕色”);
头发颜色。添加(“生姜”);
添加(“绿色”);
添加(“红色”);
ArrayAdapter HairolorAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项目,hairoloraray);
hairoloradapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
发色器;毛色器(发色器);
}
已选择公共无效项(AdapterView父项、Vie