ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在Android应用中以模糊效果设置背景图片

2019-10-12 02:38:12  阅读:215  来源: 互联网

标签:android imageview


我试图使列表视图上的背景图像模糊,但是我尝试按照教程进行操作,但它不起作用.任何人都请指教,谢谢.

主要活动

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 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,imageview
来源: https://codeday.me/bug/20191012/1897261.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有