Избегайте добавления просмотра при каждом щелчке в MultiTouchListener с помощью Java. ⇐ Android
Избегайте добавления просмотра при каждом щелчке в MultiTouchListener с помощью Java.
Когда я нажимаю на вид, граница вокруг этого вида и view2 добавляется при каждом щелчке, что создает эффект рывка или мерцания.
Я просто избегаю эффекта мерцания для этого кода, любой ссылки на него
это код, который я сейчас использую.
multiTouchListener = getMultiTouchListener(); multiTouchListener.setOnGestureControl (новый MultiTouchListener.OnGestureControl () { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override общественная недействительность onClick() { если (filter_layout.getVisibility() == View.VISIBLE) filter_layout.setVisibility(View.GONE); если (sticker_layout.getVisibility() == View.VISIBLE) стикер_layout.setVisibility(View.GONE); text_layout.setVisibility(View.VISIBLE); Rect myRect = новый Rect(); view1.getGlobalVisibleRect(myRect); int newX = myRect.left; интервал newY = myRect.top; новый Handler().postDelayed(new Runnable() { @Override общественный недействительный запуск () { frmBorder.setBackgroundResource(R.drawable.rounded_border_tv); окончательный вид view2 = LayoutInflater.from(EditingActivity.this).inflate(R.layout.pop_up_text,frameLayout, false); окончательный TextView imgPhotoEditorEdit = view2.findViewById(R.id.imgPhotoEditorEdit); окончательный TextView imgPhotoEditorClose = view2.findViewById(R.id.imgPhotoEditorClose); view2.setElevation(20); FrameLayout.addView(view2); Rect rectf = новый Rect(); //Для расположения координат относительно родителя selected_View.getLocalVisibleRect(rectf); //Для расположения координат относительно экрана/дисплея selected_View.getGlobalVisibleRect(rectf); Rect myViewRect = новый Rect(); selected_View.getGlobalVisibleRect(myViewRect); поплавок х = myViewRect.left; поплавок y = myViewRect.top; Log.d("ШИРИНА:", String.valueOf(rectf.width())); Log.d("ВЫСОТА:", String.valueOf(rectf.height())); Log.d("left :", String.valueOf(rectf.left) + " " + x); Log.d("right :", String.valueOf(rectf.right)); Log.d("top :", String.valueOf(rectf.top) + " " + y); Log.d("дно:", String.valueOf(rectf.bottom)); Просмотр rootLayout = selected_View.getRootView().findViewById(R.id.frameLayout); int[] viewLocation = новый int[2]; selected_View.getLocationInWindow(viewLocation); int[] rootLocation = новый int[2]; rootLayout.getLocationInWindow(rootLocation); int относительныйLeft = viewLocation[0] - rootLocation[0]; int относительныйTop = viewLocation[1] - rootLocation[1]; float cx = rectf.exactCenterX(); float cy = rectf.exactCenterY();
Когда я нажимаю на вид, граница вокруг этого вида и view2 добавляется при каждом щелчке, что создает эффект рывка или мерцания.
Я просто избегаю эффекта мерцания для этого кода, любой ссылки на него
это код, который я сейчас использую.
multiTouchListener = getMultiTouchListener(); multiTouchListener.setOnGestureControl (новый MultiTouchListener.OnGestureControl () { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override общественная недействительность onClick() { если (filter_layout.getVisibility() == View.VISIBLE) filter_layout.setVisibility(View.GONE); если (sticker_layout.getVisibility() == View.VISIBLE) стикер_layout.setVisibility(View.GONE); text_layout.setVisibility(View.VISIBLE); Rect myRect = новый Rect(); view1.getGlobalVisibleRect(myRect); int newX = myRect.left; интервал newY = myRect.top; новый Handler().postDelayed(new Runnable() { @Override общественный недействительный запуск () { frmBorder.setBackgroundResource(R.drawable.rounded_border_tv); окончательный вид view2 = LayoutInflater.from(EditingActivity.this).inflate(R.layout.pop_up_text,frameLayout, false); окончательный TextView imgPhotoEditorEdit = view2.findViewById(R.id.imgPhotoEditorEdit); окончательный TextView imgPhotoEditorClose = view2.findViewById(R.id.imgPhotoEditorClose); view2.setElevation(20); FrameLayout.addView(view2); Rect rectf = новый Rect(); //Для расположения координат относительно родителя selected_View.getLocalVisibleRect(rectf); //Для расположения координат относительно экрана/дисплея selected_View.getGlobalVisibleRect(rectf); Rect myViewRect = новый Rect(); selected_View.getGlobalVisibleRect(myViewRect); поплавок х = myViewRect.left; поплавок y = myViewRect.top; Log.d("ШИРИНА:", String.valueOf(rectf.width())); Log.d("ВЫСОТА:", String.valueOf(rectf.height())); Log.d("left :", String.valueOf(rectf.left) + " " + x); Log.d("right :", String.valueOf(rectf.right)); Log.d("top :", String.valueOf(rectf.top) + " " + y); Log.d("дно:", String.valueOf(rectf.bottom)); Просмотр rootLayout = selected_View.getRootView().findViewById(R.id.frameLayout); int[] viewLocation = новый int[2]; selected_View.getLocationInWindow(viewLocation); int[] rootLocation = новый int[2]; rootLayout.getLocationInWindow(rootLocation); int относительныйLeft = viewLocation[0] - rootLocation[0]; int относительныйTop = viewLocation[1] - rootLocation[1]; float cx = rectf.exactCenterX(); float cy = rectf.exactCenterY();
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
JQuery на нажмите «Не запустить» на первом щелчке .. завод на втором щелчке
Anonymous » » в форуме Html - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-