1.MainActivity
package com.example.frescodemo;
import android.Manifest;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeController;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import com.facebook.imagepipeline.postprocessors.IterativeBoxBlurPostProcessor;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.request.ImageRequestBuilder;
public class MainActivity extends AppCompatActivity {
private SimpleDraweeView simpleDraweeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleDraweeView = findViewById(R.id.image);
SimpleDraweeView one = findViewById(R.id.one);
SimpleDraweeView two= findViewById(R.id.two);
SimpleDraweeView three= findViewById(R.id.three);
SimpleDraweeView four = findViewById(R.id.four);
if (ActivityCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, 100);
}
showUrlBlur(simpleDraweeView,
"https://img4q.duitang.com/uploads/item/201304/27/20130427043538_wAfHC.jpeg",
1,
10);
//加载gif
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
//加载assests包下的gif
.setUri(Uri.parse("asset:///aa.gif"))
.setAutoPlayAnimations(true)
.build();
one.setController(draweeController);
//one.setImageURI(Uri.parse("https://img4q.duitang.com/uploads/item/201304/27/20130427043538_wAfHC.jpeg"));
//加载drawable包下的图片
two.setImageURI("res:///"+R.drawable.f);
three.setImageURI(Uri.parse("https://img4q.duitang.com/uploads/item/201304/27/20130427043538_wAfHC.jpeg"));
four.setImageURI(Uri.parse("https://img4q.duitang.com/uploads/item/201304/27/20130427043538_wAfHC.jpeg"));
}
//高斯模糊
public static void showUrlBlur(SimpleDraweeView draweeView, String url, int iterations, int blurRadius) {
try {
Uri uri = Uri.parse(url);//图片url
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
.build();
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(draweeView.getController())
.setImageRequest(request)
.build();
draweeView.setController(controller);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.xml页面
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
android:gravity="center"
tools:context=".MainActivity">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/one"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:layout_margin="10dp"
app:fadeDuration="1000"/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/two"
app:roundAsCircle="true"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:layout_margin="10dp"
app:fadeDuration="1000"/>
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/image"
android:minHeight="50dp"
android:adjustViewBounds="true"
app:roundedCornerRadius="20dp"
app:roundAsCircle="true"
app:roundingBorderWidth="5dp"
app:roundingBorderColor="#ff0"/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/three"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:layout_margin="10dp"
app:fadeDuration="1000"
app:roundedCornerRadius="5dp"
app:roundTopLeft="true"
app:roundTopRight="true"
app:roundBottomLeft="true"
app:roundBottomRight="true"/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/four"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:layout_margin="10dp"
app:fadeDuration="1000"
app:roundedCornerRadius="5dp"
app:roundTopLeft="false"
app:roundTopRight="false"
app:roundBottomLeft="true"
app:roundBottomRight="true"/>
</LinearLayout>
<!--fresco:actualImageScaleType="focusCrop" //加载得到的图片的缩放类型-->
<!--fresco:fadeDuration="1000" -->
<!--fresco:failureImage="@drawable/imgbg" //加载失败之后显示的图片-->
<!--fresco:failureImageScaleType="centerInside" //图片缩放类型-->
<!--fresco:placeholderImage="@drawable/imgbg" //占位图片(未加载之前显示的图片)-->
<!--fresco:placeholderImageScaleType="fitCenter" -->
<!--fresco:progressBarAutoRotateInterval="1000" //加载进度条图片旋转周期-->
<!--fresco:progressBarImage="@drawable/progress_bar" //加载进度条图片-->
<!--fresco:progressBarImageScaleType="centerInside"-->
<!--fresco:retryImage="@mipmap/ic_launcher" //提示重新加载的图片资源-->
<!--fresco:retryImageScaleType="centerCrop"-->
<!--fresco:backgroundImage="@color/colorWhite" //背景图片-->
<!--fresco:roundAsCircle="false" //是否要将图片剪切成圆形-->
<!--fresco:viewAspectRatio="1" //图片宽高比-->
<!--fresco:overlayImage="@drawable/overlay" //在图片上方覆盖一个图片资源-->
<!--fresco:pressedStateOverlayImage="@color/colorBlack"-->
<!--fresco:roundedCornerRadius="20dp" //圆角角度,-->
<!--fresco:roundTopLeft="true" //设置哪个角需要变成圆角-->
<!--fresco:roundTopRight="false"-->
<!--fresco:roundBottomLeft="false"-->
<!--fresco:roundBottomRight="true"-->
<!--fresco:roundWithOverlayColor="@color/colorWhite" //圆角部分填充色-->
<!--fresco:roundingBorderWidth="2dp" //边框宽度-->
<!--fresco:roundingBorderColor="@color/colorBlack" //边框填充色-->
3.自定义一个类继承Application
package com.example.app;
import android.app.Application;
import android.os.Environment;
import com.facebook.cache.disk.DiskCacheConfig;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
import java.io.File;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
File file = new File(Environment.getExternalStorageDirectory()+File.separator+"frescocache");
Fresco.initialize(this,ImagePipelineConfig.newBuilder(this).
setMainDiskCacheConfig(
DiskCacheConfig.newBuilder(this)
.setBaseDirectoryPath(file)
.build()
).build());
}
}
4.清单文件中添加权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
5.需导入的依赖
compile 'com.facebook.fresco:fresco:1.10.0'
implementation 'com.facebook.fresco:animated-gif:1.10.0'
效果图如下
五分钟学习---kotlin在Android中的使用。扩展函数:展示和影藏view。fun View.show(){ this.visibility = View.VISIBLE}fun View.hide() { this.visibility = View.INVISIBLE}fun View.remove(){ this.visibility = View.GONE}view.show()view.hide() view.remove()...
http://javawind.net/p131VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out2、包含其他进程的共享3...
目录问题描述题目解析C++代码正确答案问题描述史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。其中,乘以7是最复杂的,就以它为例。因为,1/7 是个循环小数:0.142857…,如果多位数超过 142857…,就要进1同理,2/7, 3/7, … 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位
ai人工智能的本质和未来Artificial Intelligence is a subject that sparks the imagination — and splits opinion. Proponents point to the problem-solving potential of machine learning, and AI’s ability to make many ...
在一个H5嵌套项目中遇到这样一个问题,当我点击H5页面的某个按钮时,webview页面直接白屏了,开始我怀疑自己的代码是不是由于疏漏移除了WebView,当我用Safari打开调试模式发现,webView存在,内容变成了about:blank,由于我对H5不是很了解,所以请教了H5的开发,那边说就是正常的链接打开,并说在调试工具里面正常,尼玛~~~~。后来我直接在Safari打开H5页面,确实能正...
-- 创建用户create user '[email protected]' identified by 'tom1234';create user 'jack'@'%' identified by 'jack8888';create user 'mike'@'%' identified by 'mike0000';create user 'john'@'localhost' identified by 'john5555';-- 修改用户set password for'tom'@'localhos
# IP工具类class IpUtil: # X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 @staticmethod def get_ip(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: .
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName...
使用vue+element-ui制作创建调查问卷功能;代码如下:(只是一些简单功能)<template> <div class="container"> <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="标题"> <el-input v-model="form.name"></el-input>
# deb cdrom:[Ubuntu 16.04.2 LTS _Xenial Xerus_ - Release amd64 (20170215.2)]/ xenial main restricted# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to# newer versions of the...
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.集群的介绍 每个服务器都叫做一个节点,集群节点之间是可以相互通信的,通信方式有两种:一种是基于RS232心跳线实现心跳监控,另一种用一块单独的网卡来跑心跳。心跳就是用来判断集群每个服务器之间网络、服务是否正常,判断方法就是用连接线,这个连接线可以是网卡,也可以是RS232,一般用网卡网线。 集群必须拥有这几个特性:1.服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。2.当一个节点...