Эта проблема беспокоит меня, у меня есть два изображения в одной строке таблицы. Когда я нажимаю на изображение, ожидаемое поведение состоит в том, что оно перемещается вправо с помощью Translate Animation.
Проблема, с которой я столкнулся, заключается в том, что, когда я нажимаю на первое изображение, оно перемещается вправо, и образуется пустой слот, и это совершенно то, что я хотел, но когда я нажимаю на это пустое место снова, изображение снова появляется и снова перемещается вправо.
Вопрос: Я знаю, что вид объекта не меняется в Translate Animation, но почему растровое изображение появляется снова при первом просмотре изображения, когда я его повторяю. Я хотел бы, чтобы это произошло только один раз, и тогда растровое изображение останется со вторым видом навсегда (полностью очищено при первом просмотре). Как мне этого добиться ?
Мой код:
открытый класс TestCode расширяет Activity {
Переход анимацииAnim = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bitmap bMap1 = BitmapFactory.decodeResource(getResources(), R.drawable.g1);
Bitmap bMapScaled1 = Bitmap.createScaledBitmap(bMap1, 50, 60, true);
Bitmap bMap2 = BitmapFactory.decodeResource(getResources(), R.drawable.g2);
Bitmap bMapScaled2 = Bitmap.createScaledBitmap(bMap2, 50, 60, true);
try{
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableview);
tableLayout.setClipChildren(false);
TableRow tableRow = new TableRow(this);
ImageView imageView1 = new ImageView(this);
imageView1.setImageBitmap(bMapScaled1);
imageView1.setPadding(1, 1, 1, 1);
imageView1.setOnClickListener(viewClickListener);
tableRow.addView(imageView1);
ImageView imageView2 = new ImageView(this);
imageView2.setImageBitmap(bMapScaled2);
imageView2.setPadding(1, 1, 1, 1);
imageView2.setOnClickListener(viewClickListener);
tableRow.addView(imageView2);
tableLayout.addView(tableRow);
} catch (Exception e){
e.printStackTrace();
}
}
private OnClickListener viewClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
transitionAnim = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);
transitionAnim.setDuration(1000);
transitionAnim.setFillAfter(true);
v.startAnimation(transitionAnim);
}
};
}