Wie man Canvas-Bereich zeichnen transparent in android?
Möchte ich die Canvas-Bereich transparent, weil ich möchte ein Bild dahinter, so dass die Leinwand Aktionen geschehen über dem Bild.Mein code für die Leinwand ist hier
public class Panel extends SurfaceView implements SurfaceHolder.Callback {
private ViewThread mThread;
private ArrayList<Element> mElements = new ArrayList<Element>();
public Panel(Context context, AttributeSet attrs) {
super(context, attrs);
getHolder().addCallback(this);
mThread = new ViewThread(this);
}
public void doDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
synchronized (mElements) {
for (Element element : mElements) {
element.doDraw(canvas);
}
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
//TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
if (!mThread.isAlive()) {
mThread = new ViewThread(this);
mThread.setRunning(true);
mThread.start();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mThread.isAlive()) {
mThread.setRunning(false);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
synchronized (mElements) {
mElements.add(new Element(getResources(), (int) event.getX(), (int) event.getY()));
}
return super.onTouchEvent(event);
}
}
Wie es zu erreichen, jeder Schnipsel wird es sehr hilfreich.Dank
InformationsquelleAutor Karthik | 2012-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekam ich die Ausgabe von diesem
InformationsquelleAutor Karthik
Wenn Sie möchten, eine Leinwand mit einem transparenten hintergrund, die Sie haben, konfigurieren Sie die hintergrund-Bild für die
mit Bitmap.Config.ARGB_4444
Und verwenden Sie Farben wie 0x00000000 transparent
hoffe, das hilft! Ich habe eine ziemlich transparente Leinwand 😀 yay!
Kleines update hier: bessere Nutzung ARGB_8888, da ARGB_4444 ist veraltet jetzt. Quelle: developer.android.com/reference/android/graphics/Bitmap.Config
InformationsquelleAutor Unispaw
erste Attribut ist-alpha-und rest sind RGB-Farben.
oder
tut es ziehen jede andere Farbe, richtig??? was ist der hintergrund Farbe der Oberfläche anzeigen?
Es zieht andere Farbe korrekt, aber wenn ich das bekomme ich nur schwarzen hintergrund..Wie kann ich es loswerden..
versuchen Sie, fügen Sie Transparenten hintergrund, der die Oberfläche Ansicht zuerst in XML, wenn Sie noch nicht Hinzugefügt. Dann könnte es gut funktioniert.
InformationsquelleAutor Awais Tariq
In Ihrem
onDraw()
- Methode hinzufügen:Dadurch wird Ihr
canvas
transparent undbackground View
sichtbar.InformationsquelleAutor user2031883
diese machen den canvas-tramsparent, und es ist Arbeit für mich 🙂
InformationsquelleAutor Muneebq Ashfaq
Erstellen Sie eine Bitmap die gleiche Größe wie die Leinwand. Löschen Sie alle Farben der bitmap mit Farbe.TRANSPARENZ und legen Sie es als eine canvas-bitmap:
InformationsquelleAutor Michał Wołodkiewicz
gut, ich bin nicht sicher über die Zeichnung der transparenten Leinwand, aber in Ihrem Fall, die Sie tun können ein zwicken, ziehen die Leinwand mit dem hintergrund Bild iteself.
Und dann kann man zeichnen/malen mit dem finger auf Sie.
Code Beispiel:
InformationsquelleAutor akkilis
Set Leinwand ist der Ansicht Hintergrundfarbe auf #00000000
InformationsquelleAutor Akhilesh Dhar Dubey
Funktioniert gut für mich mit
InformationsquelleAutor V. Kalyuzhnyu