Android开发笔记之图片缓存、手势及OOM分析

2019-12-10 19:27:12丽君

PhotoView的实现与上述原理基本一致,这里不再赘述。对于自定义控件的实现,后续文章会进行详细的分析。

GestureImageView的简介如下:

1.Configured as View in layout.xml

code:

<LinearLayout
xmlns:android="http://www.easck.com/apk/res/android"
xmlns:gesture-image="http://www.easck.com/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.polites.android.GestureImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/image"
gesture-image:min-scale="0.1"
gesture-image:max-scale="10.0"
gesture-image:strict="false"/>
</LinearLayout> 

2.Configured Programmatically

code:

import com.polites.android.GestureImageView;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.LinearLayout.LayoutParams;
public class SampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
GestureImageView view = new GestureImageView(this);
view.setImageResource(R.drawable.image);
view.setLayoutParams(params);
ViewGroup layout = (ViewGroup) findViewById(R.id.layout);
layout.addView(view);
}
}

原理基本同PhotoView一致,不再赘述。

三、OOM分析工具——LeakCanary

LeakCanary的介绍:

A memory leak detection library for Android and Java.

可见,LeakCanary主要用于检测各种内存不能被GC,从而导致泄露的情况。

LeakCanary的地址 https://www.easck.com/p>

Demo地址:

https://www.easck.com/p>

https://www.easck.com/p>