Привет, я добавляю некоторые изображения динамически через сенсорное событие. то есть, когда я касаюсь и нажимаю добавить изображение, изображение добавляется в эту позицию. когда я переключаюсь с портрета на пейзаж, положение изображения должно быть соответствующим образом скорректировано ... для этого я устанавливаю поля и настраиваю положение изображения. но, это возможно только с одной стороны. Например, если я добавляю изображения в портретном режиме. я применю масштабирование и настрою его, когда конфигурация изменится на альбомную. но если я хочу добавить изображения в альбомной ориентации, положение изображения не добавляется к конкретной позиции, к которой я прикасаюсь. как мне это решить. Пожалуйста, помогите мне. Вот кусок кода, которым я делюсь
Public void AddButtons (int id) {
int x = Integer.parseInt(StickyNotesList.get(id).getX());
int y = Integer.parseInt(StickyNotesList.get(id).getY());
float scale=pageViewManager.mDocument.getmPageSizeY()/pageViewManager.mDocument.getPageheight();
RelativeLayout r=new RelativeLayout(stickynoteContext);
/*AbsoluteLayout r = new AbsoluteLayout(stickynoteContext);
AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams(pageViewManager.mDocument.mPageSizeX,pageViewManager.mDocument.mPageSizeY, (int) (x*scale), (int)(y*scale-(pageViewManager.getTitleViewHeight())));*/
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(pageViewManager.mDocument.mPageSizeX,pageViewManager.mDocument.mPageSizeY);
params.setMargins(x*scale, y*scale-pageViewManager.getTitleViewHeight(), 0, 0);
r.setLayoutParams(params);
final Button btn = new Button(stickynoteContext);
Drawable BG1 = (Drawable) getResources()
.getDrawable(R.drawable.stickynote_icon);
btn.setBackgroundDrawable(BG1);
btn.setWidth((int)(stickynoteImag_Width*scale));
btn.setHeight((int)(stickynoteImag_Height*scale));
btn.setId(id+1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateStickyNotes(btn.getId());
}
});
r.addView(btn);
this.addView(r);
StickyNoteLayout.add(r);
r.invalidate();
StickyNoteLayout.get(id).invalidate();
}
1 ответ
При изменении ориентации ОС перезапускает действие, поэтому, если вы хотите обработать изменение ориентации, вам следует проверить ориентацию. Здесь есть пример кода http://www.southparksystems.com/devzilla/2010/3/3/switching-layouts-when-screen-orientation-changes-in-android.html
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.