Ich entschied mich zu versuchen, benutzerdefinierte Ansicht zu erstellen. Es ist notwendig, einen Editor mit einigen Funktionen (Drehen, Zoomen, Transformieren, Hinzufügen von Überlagerungen) auf beiden Ebenen (oben, unten) zu erstellen und es möglich, den Teiler zu verschieben, um ein Layout für eine bequeme Bildbearbeitung zu erhöhen. Gibt es ähnliche Arbeiten oder kann sich jemand vorstellen wie man richtig anfängt?Wie erstellt man doppelte benutzerdefinierte Ansicht für Android?
0
A
Antwort
1
Ich habe ein benutzerdefiniertes Layout gemacht, das tut, was Sie gefragt.
Verwenden Sie es wie Codierung
public class BicontLayout extends LinearLayout {
private View divider;
private View vTop, vBottom;
private LinearLayout.LayoutParams vTopParams, vBottomParams;
private int dividerClickableHeight;
public BicontLayout(Context ctx, View viewTop, View viewBottom) {
super(ctx);
this.vTop = viewTop;
this.vBottom = viewBottom;
setOrientation(LinearLayout.VERTICAL);
setWeightSum(1f);
vTopParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 0.5f);
vBottomParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 0.5f);
addView(vTop, vTopParams);
divider = new View(ctx);
divider.setBackgroundColor(Color.RED);
dividerClickableHeight = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50f, getResources().getDisplayMetrics());
addView(divider, LinearLayout.LayoutParams.MATCH_PARENT, 3);
addView(vBottom, vBottomParams);
}
private float yStartTouch;
private float yStartWeight;
private boolean isDragging;
private int[] dividerLocation = new int[2];
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(onTouchEvent(ev)) return true;
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent me) {
switch(me.getAction()) {
case MotionEvent.ACTION_DOWN:
yStartTouch = me.getRawY();
yStartWeight = vTopParams.weight;
divider.getLocationOnScreen(dividerLocation);
isDragging = Math.abs(dividerLocation[1]-yStartTouch) < dividerClickableHeight/2;
break;
case MotionEvent.ACTION_MOVE:
if(!isDragging) break;
float yDelta = me.getRawY() - yStartTouch;
float yDeltaProg = yDelta/BicontLayout.this.getHeight();
float yNewProg = yStartWeight + yDeltaProg;
if(yNewProg<0.1f) yNewProg=0.1f;
if(yNewProg>0.9f) yNewProg=0.9f;
vTopParams.weight = yNewProg;
vTop.setLayoutParams(vTopParams);
vBottomParams.weight = 1f - yNewProg;
vBottom.setLayoutParams(vBottomParams);
break;
case MotionEvent.ACTION_UP:
isDragging=false;
break;
}
if(isDragging) return true;
return super.onTouchEvent(me);
}
} // author Tiziano Munegato
Anwendungsbeispiel
// vTop : top view
// vBottom : bottom view
BicontLayout doubleLayout = new BicontLayout(getContext(), vTop, vBottom);
setContentView(doubleLayout);
Glücklich im Beispiel
Verwandte Themen
- 1. Wie erstellt man eine Regal-ähnliche Ansicht in Android?
- 2. Wie erstellt man eine benutzerdefinierte Popup-Ansicht mit swift?
- 3. Android Benutzerdefinierte Ansicht Constructor
- 4. Wie erstellt man eine erweiterbare Ansicht in Android?
- 5. Wie man benutzerdefinierte Ansicht zu Palette in Android Studio hinzufügen?
- 6. Benutzerdefinierte Ansicht für Menüpunkt
- 7. Android: Wie erstellt man einen Rahmen für die Rundumsicht?
- 8. Android benutzerdefinierte Ansicht scroll Leistung
- 9. Android benutzerdefinierte Ansicht wie zerknittertes Papier
- 10. Wie erstellt man konkaves Bild in Android?
- 11. Wie erstellt man benutzerdefinierte Matcher in Mockito?
- 12. Wie erstellt man die folgende Ansicht?
- 13. Wie erstellt man benutzerdefinierte Bildlaufleisten in IE?
- 14. Wie erstellt man eine benutzerdefinierte Zufallsverteilung?
- 15. Wie erstellt man eine benutzerdefinierte Benutzereigenschaft für Firebase?
- 16. Wie erstellt man programmgesteuert eine benutzerdefinierte Farbpalette?
- 17. Wie erstellt man benutzerdefinierte Seiten in dasBlog?
- 18. Yoast SEO | Wie man benutzerdefinierte Variablen erstellt
- 19. Wie erstellt man eine benutzerdefinierte WPF-Sammlung?
- 20. Wie erstellt man dieses benutzerdefinierte Layout?
- 21. PySide/PyQt: Wie erstellt man benutzerdefinierte Klassen?
- 22. Wie erstellt man benutzerdefinierte Tastenbelegungen in draft.js?
- 23. SSIS: Wie erstellt man benutzerdefinierte Protokolldateien?
- 24. FFMPEG, wie man benutzerdefinierte Wellenform erstellt
- 25. Android App erstellt doppelte Verknüpfung in Homescreen
- 26. Benutzerdefinierte Benachrichtigung mit Remote-Ansicht auf Android
- 27. Zugriff auf die benutzerdefinierte Ansicht in Android
- 28. Wie funktioniert UIMenuController für eine benutzerdefinierte Ansicht?
- 29. Wie erstellt man benutzerdefinierte Ansichten (Stil & HTML) in Drupal 8?
- 30. Cocoa benutzerdefinierte Ansicht für NSMenuItem
Vielen Dank, MAN)))) Sie machen meinen Tag –
Sie sind derjenige, der mit dieser Einstellung meinen Tag macht! –
Kannst du mich bitte auf Skype hinzufügen? Konto: "gewalttätig.ua". Ich habe Probleme, die ich beim Hinzufügen von Karten in Ihrem benutzerdefinierten Layout nicht lösen kann –