国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中實現(xiàn)iOS中的毛玻璃效果

2019-12-12 02:41:37
字體:
供稿:網(wǎng)友

為了實現(xiàn)毛玻璃效果,我們需要一組compute kernels(.rs文件中編寫),及一組用于控制renderScript相關(guān)的Javaapi(.rs文件自動生成為Java類)。 由于compute kernels的編寫需要一定的學(xué)習(xí)成本,從JELLY_BEAN_MR1開始,Androied內(nèi)置了一些compute kernels用于常用的操作,其中就包括了Gaussian blur。

下面,通過實操來講解一下RenderScript來實現(xiàn)高斯模糊,最終實現(xiàn)效果(講文字背景進(jìn)行模糊處理):

實現(xiàn)代碼:

<html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><textarea style="width:99%;height:99%">private  void applyBlur() {   image.getViewTreeObserver().addOnPreDrawListener(new  ViewTreeObserver.OnPreDrawListener() {     @Override     public boolean onPreDraw() {       image.getViewTreeObserver().removeOnPreDrawListener(this);       image.buildDrawingCache();       Bitmap bmp = image.getDrawingCache();       blur(bmp, text, true);       return true;     }   }); } @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private void blur(Bitmap bkg, View view) {   long startMs = System.currentTimeMillis();   float radius = 20;   Bitmap overlay = Bitmap.createBitmap((int)(view.getMeasuredWidth()),  (int)(view.getMeasuredHeight()), Bitmap.Config.ARGB_8888);   Canvas canvas = new Canvas(overlay);   canvas.translate(-view.getLeft(), -view.getTop());   canvas.drawBitmap(bkg, 0, 0, null);   RenderScript rs = RenderScript.create(SecondActivity.this);   Allocation overlayAlloc = Allocation.createFromBitmap(rs, overlay);   ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rs,  overlayAlloc.getElement());   blur.setInput(overlayAlloc);   blur.setRadius(radius);   blur.forEach(overlayAlloc);   overlayAlloc.copyTo(overlay);   view.setBackground(new BitmapDrawable(getResources(), overlay));   rs.destroy();   statusText.setText("cost " + (System.currentTimeMillis() - startMs) +  "ms"); }</textarea></body></html> 

布局如下:

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:Android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" >  <ImageView     android:id="@+id/picture"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:src="@drawable/splash"     android:scaleType="centerCrop" />  <TextView     android:id="@+id/text"    android:gravity="center_horizontal"     android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="Gaussian Blur"    android:textColor="@android:color/black"    android:layout_gravity="center_vertical"    android:textStyle="bold"    android:textSize="48sp" />  <LinearLayout     android:id="@+id/controls"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:background="#7f000000"     android:orientation="vertical"    android:layout_gravity="bottom" /></FrameLayout>

以上所述是小編給大家介紹的Android中實現(xiàn)iOS中的毛玻璃效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰西县| 张家川| 岳普湖县| 大洼县| 湖南省| 郧西县| 九寨沟县| 莫力| 怀远县| 渑池县| 措勤县| 安化县| 阿城市| 登封市| 南安市| 台前县| 祥云县| 鄂尔多斯市| 荣成市| 东乌珠穆沁旗| 巴林右旗| 本溪市| 宝山区| 浠水县| 高陵县| 额济纳旗| 钟祥市| 天柱县| 什邡市| 临颍县| 灯塔市| 青铜峡市| 绥阳县| 綦江县| 宝丰县| 高尔夫| 嫩江县| 孟津县| 肇源县| 武城县| 嵊泗县|