jestem w stanie wyciągnąć z powrotem na zlecenie grunt do pliku xml przy użyciu Shapeniestandardowy kształt podczas rozmowy w Android za pomocą pliku xml
ale jak dodać łuk lub CURV w określonym miejscu.
jestem w stanie wyciągnąć z powrotem na zlecenie grunt do pliku xml przy użyciu Shapeniestandardowy kształt podczas rozmowy w Android za pomocą pliku xml
ale jak dodać łuk lub CURV w określonym miejscu.
Bo masz ten łuk lub CURV należy utworzyć niestandardowy jpg
.
Ale można skorzystać z corners
i mają poniżej:
Dziękuję za odpowiedź. Zrobiłem to już za pomocą obrazu .9patch. –
Po prostu poszedłem za tym http://adilsoomro.blogspot.in/2012/12/android-listview-with-speech-bubble.html –
make 9patch obraz jak to tak, że jeśli w partii rozmowa tekstu wówczas również można regulować sobie, a także nie rozciągnąć ani nie skompresować z krzywej.
nadzieję, że pomoże Ci
Dziękuję, już to zrobiłem. Działa dla dużego tekstu. –
Czy możesz pomóc w zakupie aplikacji Amazon? Czy zdajesz sobie sprawę z develepmentu Amazon za pomocą Androida SDK? –
Przepraszam, nie wiem o tym .. –
W mojej bibliotece Facebook Like Button I wdrożone custom Path aby osiągnąć ten cel.
Istnieje możliwość, aby określić położenie markera gdzie chcesz:
kod z source:
import android.graphics.Path;
import android.graphics.RectF;
public class CalloutPath extends Path {
public static final int MARKER_NONE = 0x0;
public static final int MARKER_LEFT = 0x1;
public static final int MARKER_TOP = 0x2;
public static final int MARKER_RIGHT = 0x4;
public static final int MARKER_BOTTOM = 0x8;
public static final int MARKER_ALL = 0xf;
private final RectF oval = new RectF();
/**
* @param m marker
* @param w width
* @param h height
* @param s stroke thickness
* @param r corners radius
*/
public void build(int m, float w, float h, float s, float r) {
int fl = factor(m, MARKER_LEFT);
int ft = factor(m, MARKER_TOP);
int fr = factor(m, MARKER_RIGHT);
int fb = factor(m, MARKER_BOTTOM);
float x0 = s + 0f;
float x1 = s + r * fl;
float x2 = s + r + r * fl;
float x3 = w/2f - r;
float x4 = w/2f;
float x5 = w/2f + r;
float x6 = w - 1f - s - r - r * fr;
float x7 = w - 1f - s - r * fr;
float x8 = w - 1f - s;
float y0 = s + 0f;
float y1 = s + r * ft;
float y2 = s + r + r * ft;
float y3 = h/2f - r;
float y4 = h/2f;
float y5 = h/2f + r;
float y6 = h - 1f - s - r - r * fb;
float y7 = h - 1f - s - r * fb;
float y8 = h - 1f - s;
reset();
moveTo(x1, y2);
oval.set(x2 - r, y2 - r, x2 + r, y2 + r);
arcTo(oval, 180f, 90f);
if (ft != 0) {
lineTo(x3, y1);
lineTo(x4, y0);
lineTo(x5, y1);
}
lineTo(x6, y1);
oval.set(x6 - r, y2 - r, x6 + r, y2 + r);
arcTo(oval, 270f, 90f);
if (fr != 0) {
lineTo(x7, y3);
lineTo(x8, y4);
lineTo(x7, y5);
}
lineTo(x7, y6);
oval.set(x6 - r, y6 - r, x6 + r, y6 + r);
arcTo(oval, 0f, 90f);
if (fb != 0) {
lineTo(x5, y7);
lineTo(x4, y8);
lineTo(x3, y7);
}
lineTo(x2, y7);
oval.set(x2 - r, y6 - r, x2 + r, y6 + r);
arcTo(oval, 90f, 90f);
if (fl != 0) {
lineTo(x1, y5);
lineTo(x0, y4);
lineTo(x1, y3);
}
close();
}
public static int factor(int marker, int mask) {
return (marker & mask) != 0 ? 1 : 0;
}
}
Nie trzeba to zrobić programowo, należy po prostu użyj zasobu graficznego nine patch
, który tworzy idealny obraz dla Ciebie. Jeśli chcesz dowiedzieć się więcej o nine patch
i jak to działa, zapoznaj się z linkami this i this.
Jak widać, ten obraz stanowi idealną bańkę czatową dla Ciebie. Już zdekompilowałem Whatsapp
, Viber
i wszystkie one używają obrazu nine patched
do stworzenia bańki czatu. Jak widać, aplikacja Telegram używa również nine patched image, aby to osiągnąć.
Moja próbka czatu bubble zdjęcie:
ja też powinny wspomnieć, że nie potrzeba żadnego niestandardową ścieżkę. Jest to typowy poprawiony obraz bez żadnych modyfikacji.
Być może prostszym rozwiązaniem byłoby użycie obrazu z 9 łatkami. –
zakręt? łuk? o czym mówisz? – pskink
Myślę, że szukasz [Chat- Bubble] (http://adilsoomro.blogspot.in/2012/12/android-listview-with-speech-bubble.html). – Kedarnath