依赖
/fresco依赖/
implementation ‘com.facebook.fresco:fresco:1.5.0’
// 支持 GIF 动图,需要添加
implementation ‘com.facebook.fresco:animated-gif:1.5.0’
主布局
<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"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/yuanx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圆形图"/>
<Button
android:id="@+id/yaunj"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圆角:7DP"/>
<Button
android:id="@+id/kg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="宽高比:1.2"/>
<Button
android:id="@+id/donghua"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="加载动画"/>
</LinearLayout>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/img"
app:backgroundImage="@mipmap/ic_launcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:viewAspectRatio="2.0"
android:layout_marginTop="10dp"/>
<Button
android:id="@+id/zhujie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取注解的值"
android:layout_gravity="center"
/>
<Button
android:id="@+id/fanshe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="反射添加集合"
android:layout_gravity="center"
/>
</LinearLayout>
App
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
主页面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button yuanx;
private Button yaunj;
private Button kg;
private Button donghua;
private SimpleDraweeView img;
private Button zhujie;
private Button fanshe;
private Uri parse;
private Uri uris;
private GenericDraweeHierarchyBuilder builder;
private RoundingParams mparams;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//资源ID
initView();
parse=Uri.parse("http://www.zhaoapi.cn/images/quarter/ad1.png");
uris=Uri.parse("http://www.zhaoapi.cn/images/girl.gif");
builder = new GenericDraweeHierarchyBuilder(getResources());
}
//资源ID
private void initView() {
yuanx = (Button) findViewById(R.id.yuanx);
yaunj = (Button) findViewById(R.id.yaunj);
kg = (Button) findViewById(R.id.kg);
donghua = (Button) findViewById(R.id.donghua);
img = (SimpleDraweeView) findViewById(R.id.img);
zhujie = (Button) findViewById(R.id.zhujie);
fanshe = (Button) findViewById(R.id.fanshe);
yuanx.setOnClickListener(this);
yaunj.setOnClickListener(this);
kg.setOnClickListener(this);
donghua.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
//圆形
case R.id.yuanx:
mparams = RoundingParams.asCircle();
GenericDraweeHierarchy buildyx = builder.setRoundingParams(mparams).build();
img.setHierarchy(buildyx);
img.setImageURI(parse);
break;
//圆角
case R.id.yaunj:
RoundingParams roundingParams = RoundingParams.fromCornersRadius(50f);
GenericDraweeHierarchy build = builder.setRoundingParams(roundingParams).build();
img.setHierarchy(build);
img.setImageURI(parse);
break;
case R.id.kg:
img.setAspectRatio(2.71f);
break;
case R.id.donghua:
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uris)
.setAutoPlayAnimations(true)
.setOldController(img.getController())
.build();
img.setController(controller);
break;
}
}
}