2013-06-15 7 views
0

Я хочу, чтобы изображениеПрименяю изображение, которое оно отображает на другое, из моих чертежей. Все другие методы, которые я нашел, привели к сбою приложения. Там 2 imageViews в действии, и я хочу, чтобы иметь возможность изменять то, что отображалось, но независимо друг от друга. Я новичок в сценариях Java, поэтому самый простой и самый простой ответ мне поможет.Изменить изображение, отображаемое в изображенииView

Вот мой XML:

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:src="@drawable/a" 
    android:contentDescription="@string/a_mode" 
    android:onClick="startAMode" /> 

<ImageView 
    android:id="@+id/imageView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:src="@drawable/p" 
    android:contentDescription="@string/p_mode" 
    android:onClick="startPMode" /> 

Вот мой текущий сценарий Java:

public class SelectorActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    setContentView(R.layout.activity_selector); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.selector, menu); 
    return true; 
} 

public void startAMode(View view) { 
    ImageView img = (ImageView) findViewById(R.id.imageView1); 
    img.setImageResource(R.drawable.adown); 
} 

}

Это не работает:

public void startAMode(View view) { 
    ImageView img = (ImageView) findViewById(R.id.imageView1); 
    img.setImageResource(R.drawable.adown); 
} 
+0

Вы получаете любой ошибки? – Lingviston

+0

и ваше исключение stacktrace? – waqaslam

ответ

2

Сначала определите Drawable, а затем установите его в ImageView.

Drawable myDrawable = getResources().getDrawable(R.id.imageView1); 
img.setImageDrawable(myDrawable); 
+0

Это не работает: ImageView img = (ImageView) findViewById (R.id.imageView1); Drawable annoybutton = getResources(). GetDrawable (R.id.imageView1); img.setImageDrawable (annoybutton); img.setImageResource (R.drawable.annoydown); Он по-прежнему падает при нажатии на изображение. Неверный код выше? – TiberiumFusion

+1

Drawable myDrawable = getResources(). GetDrawable (R.drawable.NAMEOFIMAGE); Сделайте это, все будет хорошо –

+0

Спасибо! Он работает сейчас. – TiberiumFusion

0

какую папку вы используете для изображений src? Я думаю, что проблема в доступной папке. Создайте его вручную без hdpi, ldpi и других расширений и поместите в него изображения

1

Ваш метод должен быть "общественного недействительными startAMode() {...}", и вы должны вызвать его из на OnCreate(), как это:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    setContentView(R.layout.activity_selector); 

    startAMode(); 
} 
1
img = (ImageView)findViewById(R.id.imageView1); 
Drawable myDrawable = getResources().getDrawable(R.drawable.imagename); 
img.setImageDrawable(myDrawable); 
Смежные вопросы