Note: This component does help in solving the jerkyness of the app while loading the image through network.
Below are the steps to include Android-BitmapCache component
1. Edit previous project with the below configuration
Application Name: TechTips Project Name: TechTips Package Name: com.example.techtips
2. Import the library from Android-BitmapCache component. Please refer to the screen as shown below:
3. Add 3 classes into the TechTips project as shown in the screen below
- NetworkedCacheableImageView.java
- SampleApplication.java
- SDK11.java
4. activity_tech_tips.xml
5. fragment_tech_tips.xml.- NetworkedCacheableImageView.java
- SampleApplication.java
- SDK11.java
4. activity_tech_tips.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TechTipsActivity" >
<fragment
android:id="@+id/techtipsfragment"
android:name="com.example.techtips.TechTipsFragment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>
Refer to the fragment_tech_tips.xml, add in the ImageView with network access
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<uk.co.senab.bitmapcache.samples.NetworkedCacheableImageView
android:id="@+id/nciv_pug"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/app_name"
/>
</LinearLayout>
6. TechTipsActivity.java
package com.example.techtips;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class TechTipsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tech_tips);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_tech_tips, menu);
return true;
}
}
7. TechTipsFragment.java
package com.example.techtips;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import uk.co.senab.bitmapcache.samples.*;
public class TechTipsFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_tech_tips, null);
NetworkedCacheableImageView currentImageView = (NetworkedCacheableImageView)v.findViewById(R.id.nciv_pug);
final boolean fromCache = currentImageView.loadImage("https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSjsDTbniCrwOUKFiOF4i06fpMplrqjFMPi3s7bhm5K-jWGqK-p", false);
if (fromCache) {
Toast.makeText(getActivity().getApplicationContext(), "From Memory Cache", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity().getApplicationContext(), "From Disk/Network", Toast.LENGTH_LONG).show();
}
return v;
}
}


No comments:
Post a Comment