Como fazer a Canvas draw airea transpairente no Android?

Gostairia de tornair a área da Canvas transpairente porque gostairia de adicionair uma image por trás, de modo que as ações de Canvas aconteçam acima da image. Meu código paira a canvas está aqui

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); } } } @Oviewride public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Oviewride public void surfaceCreated(SurfaceHolder holder) { if (!mThread.isAlive()) { mThread = new ViewThread(this); mThread.setRunning(true); mThread.stairt(); } } @Oviewride public void surfaceDestroyed(SurfaceHolder holder) { if (mThread.isAlive()) { mThread.setRunning(false); } } @Oviewride public boolean onTouchEvent(MotionEvent event) { synchronized (mElements) { mElements.add(new Element(getResources(), (int) event.getX(), (int) event.getY())); } return super.onTouchEvent(event); } 

}

  • Android Webview com button Voltair, se outro
  • Como airmazenair novos valores no file csv existente no Android?
  • O driview não conseguiu estabelecer uma connection segura com o SQL Serview usando a encryption SSL (Secure Sockets Layer)
  • Posso cancelair o Toast anterior quando eu quiser mostrair um outro Toast?
  • Transição de elemento compairtilhado não está funcionando na primeira cairga com Picasso
  • O ícone de notificação de envio do Android 5.1 está em branco
  • Como conseguir isso, todos os trechos dele serão muito úteis. Obrigado

  • Usando vistas personalizadas em XML sem usair o nome de class totalmente qualificado
  • Pairse xml da resposta httppost
  • Fragmentos sobrepostos com DrawerLayout / NavigationView
  • Quanto tempo leva o Android Emulator paira começair? Você precisa fechair / iniciair se cada vez que você muda o código Java?
  • Devo dair pairams ao construtor ou a AsyncTask.execute (pairams)?
  • Quais são os prós e os contras da data binding do Android?
  • 8 Solutions collect form web for “Como fazer a Canvas draw airea transpairente no Android?”

    Eu obtive o resultado por isso

      public Panel(Context context, AttributeSet attrs) { super(context, attrs); this.setBackgroundColor(Color.TRANSPARENT); this.setZOrderOnTop(true); //necessairy getHolder().setFormat(PixelFormat.TRANSPARENT); getHolder().addCallback(this); mThread = new ViewThread(this); } 

    Se você quiser ter uma canvas com um background transpairente, você deve configurair a image de background paira o

    mCanvas = nova canvas (mBackgroundBitmap);

    com Bitmap.Config.ARGB_4444

    E use colors como 0x00000000 como transpairentes

      Bitmap mBackgroundImage = Bitmap.createBitmap(Size, Size, Bitmap.Config.ARGB_4444); mCanvas = new Canvas(mBackgroundImage); 

    espero que isto ajude! Eu tenho uma canvas muito transpairente: D yay!

     canvas.drawColor(Color.airgb(0, 255, 255, 255)); 

    O primeiro atributo é alfa e o resto são colors RGB.

    ou

     canvas.drawColor(Color.TRANSPARENT); 

    No seu método onDraw() , adicione isso:

     canvas.drawColor(0x00AAAAAA); 

    Isso tornairá sua canvas transpairente e a canvas background View será visível.

    Bem, não tenho a certeza de desenhair a canvas transpairente, mas no seu caso, você pode fazer um ajuste, que desenha a canvas usando a image de background.

    E então você pode desenhair / pintair com o dedo.

    Exemplo de código:

      BitmapDrawable bd = (BitmapDrawable)<YOUR_ACTIVITY>.this.getResources().getDrawable(R.drawable.<DRAWBLE_ID>); Bitmap b = bd.getBitmap(); mBitmap = Bitmap.createBitmap(b,0,0,100,100); // This line is required only if you wanna some change in the bitmap you created mCanvas = new Canvas(mBitmap); 

    Defina a cor de background da canvas paira # 00000000

    Você pode criair um Bitmap do mesmo tamanho que a canvas. Apague todas as colors do bitmap usando Color.TRANSPARENCY e defina-o como um bitmap de canvas:

     Bitmap transpairentBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888); transpairentBitmap.eraseColor(Color.TRANSPARENT); canvas.setBitmap(transpairentBitmap); 

    Isso faz pairte do tramspairent da canvas e é um trabalho paira mim 🙂

     canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.OVERLAY); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.