android - 在Android应用程序中设置背景图像模糊效果

标签 android imageview

我试图使 ListView 上的背景图像变得模糊,但我尝试按照教程进行操作,但它不起作用。有谁请指教一下,谢谢。

主 Activity .java

public class IngredientCategoryMain extends Activity {

ListView list;
String[] title;
CategoryImageAdapter adapter;





@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ingredient_category_main);

    list=(ListView)findViewById(R.id.listView);
    title = getResources().getStringArray(R.array.titles);
    adapter=new CategoryImageAdapter(this, mStrings, title);
    list.setAdapter(adapter);

}

@Override
public void onDestroy() {
    list.setAdapter(null);
    super.onDestroy();
}

public View.OnClickListener listener=new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        adapter.imageLoader.clearCache();
        adapter.notifyDataSetChanged();


    }
};

public void onItemClick(int mPosition) {
    String tempValues = title[mPosition];
    Toast.makeText(IngredientCategoryMain.this, "Click on image "+tempValues+" to enter", Toast.LENGTH_LONG).show();

}

private String[] mStrings={
        "https://pixabay.com/static/uploads/photo/2014/07/08/14/33/breads-387544_960_720.jpg",
        "http://mtbev.org/wp-content/uploads/2014/02/Bottles.jpg",
        "https://c2.staticflickr.com/8/7023/6548962149_7a9fdd9cf4_b.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/2/2f/Culinary_fruits_front_view.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/e/ea/Indian_Spices.jpg",
        "https://pixabay.com/static/uploads/photo/2016/01/13/17/21/raw-1138562_960_720.jpg",
        "https://pixabay.com/static/uploads/photo/2010/12/13/09/51/seed-1716_960_720.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/b/ba/Rice_grains_(IRRI).jpg",
        "http://www.stock-free.org/images/Thanksgiving-Stock-Free-Image-08112015-image-239.jpg",
        "https://pixabay.com/static/uploads/photo/2012/10/01/18/34/dips-58738_960_720.jpg",
        "https://pixabay.com/static/uploads/photo/2013/07/19/00/18/seafood-165220_960_720.jpg",
        "https://c1.staticflickr.com/3/2877/10866943666_471d9f2845_b.jpg"
};


}

我设计 ListView 的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">


<ImageButton
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:id="@+id/imageButton2"
    android:scaleType="fitXY"
    android:layout_below="@+id/textView2"
    android:layout_alignParentStart="true"
    android:layout_alignParentEnd="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:id="@+id/textView2"
    android:layout_marginLeft="20dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textColor="#f7338b"
    android:textStyle="bold"
    android:background="#80ffffff" />

和listview.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.cassieleong.delishcart.IngredientCategoryMain"
tools:showIn="@layout/activity_ingredient_category_main"
android:background="#fde7e7">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:background="@drawable/appicon"/>

最佳答案

我最近遇到了 Renderscript API。

//Set the radius of the Blur. Supported range 0 < radius <= 25
private static final float BLUR_RADIUS = 25f;

public Bitmap blur(Bitmap image) {
if (null == image) return null;

Bitmap outputBitmap = Bitmap.createBitmap(image);
final RenderScript renderScript = RenderScript.create(this);
Allocation tmpIn = Allocation.createFromBitmap(renderScript, image);
Allocation tmpOut = Allocation.createFromBitmap(renderScript, outputBitmap);

//Intrinsic Gausian blur filter
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
theIntrinsic.setRadius(BLUR_RADIUS);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
return outputBitmap;
} 

在 ImageView 中使用上面的代码 fragment ,如下所示。

ImageView imageView = (ImageView) findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.nature);
Bitmap blurredBitmap = blur(bitmap);
imageView.setImageBitmap(blurredBitmap);

不要忘记在 build.gradle 文件中添加以下行

renderscriptTargetApi 18
renderscriptSupportModeEnabled true

引用: http://javatechig.com/android/how-to-create-bitmap-blur-effect-in-android-using-renderscript

关于android - 在Android应用程序中设置背景图像模糊效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36192800/

相关文章:

android - 如何在android中将图像缩放到指定坐标

android - sdk 为 25 时如何编译自定义选项卡?

ios - 如何在 ViewController 中随机化 3 张图像?

android - 如何启用 stacktrace react-native run-android 命令?

当 View 离开屏幕时,Android 动画停止在 recyclerview 中工作

android - 如何将关闭的 ImageView 放在对话框的右上角并带有边距?

java - 在开始时为 ImageView 设置随机位置

Android ImageView内存管理

android - 房间数据库独特的值(value)

Android - 从 JavaScriptInterface 中的主类调用方法