Scavare fori nei layout di Android

È ansible creare fori in un layout Android. Ho due sfondi, uno normale, uno sfocato e quello che voglio creare le celle che possono visualizzare lo background sfocato.

Il mio XML sarebbe stato così costruito:

  • Come posso visualizzare un cerchio di attività a tema holo?
  • colore nero android all'85% di opacità
  • Cross Compilazione di libevent per Android
  • Metodo getText () deve essere richiamato dal thread UI
  • Come get la data completa con il formato corretto?
  • Il metodo getView () di ArrayAdapter non viene chiamato
  • Background_blurred> Background_normal> Cellule.

    – So già come sfocare uno background.

    -Cells sono ovunque, come un GridView, e non solo ai confini. immettere qui la descrizione dell'immagine

  • Come posso programmare una schermata di una pagina web, catturando la pagina intera?
  • Modo alternativo per la comunicazione tra WebView e nativo
  • Utilizzo di muPDF con effetto curl / flip
  • Errore nel file pom nel progetto Maven dopo l'importzione in Eclipse
  • Proprietario del dispositivo su Android 5.0 (e altri) senza dispositivi rooted, provisioning di dispositivi da parte di NFC
  • CCAvenue Android Integration
  • One Solution collect form web for “Scavare fori nei layout di Android”

    prova questo:

    class FL extends FrameLayout { private List<View> mViews = new ArrayList<View>(); private Bitmap mBack; private Bitmap mBackBlur; private int[] mLocation = new int[2]; private Matrix mMatrix = new Matrix(); public FL(Context context) { super(context); Resources res = getResources(); mBack = BitmapFactory.decodeResource(res, R.drawable.back); mBackBlur = BitmapFactory.decodeResource(res, R.drawable.back_blur); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { RectF src = new RectF(0, 0, mBack.getWidth(), mBack.getHeight()); RectF dst = new RectF(0, 0, w, h); mMatrix.setRectToRect(src, dst, ScaleToFit.FILL); } public void add(View v) { mViews.add(v); } @Override protected void dispatchDraw(Canvas canvas) { canvas.drawBitmap(mBack, mMatrix, null); canvas.save(Canvas.CLIP_SAVE_FLAG); getLocationOnScreen(mLocation); int x = mLocation[0]; int y = mLocation[1]; Op op = Op.REPLACE; for (View v : mViews) { v.getLocationOnScreen(mLocation); mLocation[0] -= x; mLocation[1] -= y; int left = mLocation[0]; int top = mLocation[1]; int right = left + v.getWidth(); int bottom = top + v.getHeight(); canvas.clipRect(left, top, right, bottom, op); op = Op.UNION; } canvas.drawBitmap(mBackBlur, mMatrix, null); canvas.restore(); super.dispatchDraw(canvas); } } 

    codice di prova (in onCreate):

      FL fl = new FL(this); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); float[] hsv = { 0, 1, 0.75f }; float[] h = { 0, 39, 60, 120, 300 }; for (int i = 0; i < 5; i++) { TextView tv = new TextView(this); hsv[0] = h[i]; tv.setTextColor(0xffeeeeee); tv.setBackgroundColor(Color.HSVToColor(128, hsv)); tv.setPadding(10, 10, 10, 10); tv.setTextSize(64); tv.setText("#" + i); LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); params.topMargin = 10; params.bottomMargin = 10; params.leftMargin = 20; params.rightMargin = 20; ll.addView(tv, params); fl.add(tv); } sv.addView(ll); fl.addView(sv); setContentView(fl); 

    where R.drawable.back è:

    immettere qui la descrizione dell'immagine

    e R.drawable.back_blur è:

    immettere qui la descrizione dell'immagine

    Il risultato è:

    immettere qui la descrizione dell'immagine

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.