我想使用特定的GradientDrawable制作ImageView并制作src = "@drawable/myImage"
。当我尝试这个代码时,我得到了所有的东西,但src
图像没有显示:
leftIcon = (ImageView)rowView.findViewById(R.id.left_icon);
leftIcon.setImageResource(R.drawable.arrow333);
GradientDrawable gd=new GradientDrawable();
gd.setCornerRadii(getRandomFloatArray());
gd.setStroke(5, Color.WHITE);
gd.setColor(values[position].getColor());
GradientDrawable gd_press=new GradientDrawable();
gd_press.setCornerRadii(getRandomFloatArray());
gd_press.setStroke(5, Color.BLUE);
gd_press.setColor(values[position].getColor());
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed}, gd_press );
states.addState(new int[] {android.R.attr.state_focused}, gd_press);
states.addState(new int[] { }, gd);
leftIcon.setImageResource(R.drawable.arrow333);
leftIcon.setImageDrawable(states);
我的xml文件:
<ImageView
android:id="@+id/left_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
答案 0 :(得分:0)
这可能是因为您在设置图像资源后正好设置了一个可绘制的states
。如果您希望两个图像都可见,请将一个图像应用为ImageView
背景,将其他图像应用为源:
leftIcon.setBackgroundResource(R.drawable.arrow333);
leftIcon.setImageDrawable(states);
OR
leftIcon.setBackgroundResource(states);
leftIcon.setImageDrawable(R.drawable.arrow333);