Releasing VBBitmap 1.3 beta
  
BitmapLib.HowBig - returns the height/width of an image
Msgbox(BitmapLib.HowBig(File.DirInternal,"/moon3.jpg"),"SIZE")
 
BitmapLib.loadbitmap2 This allows you to pass a SampleSize
Also lets you choose loading the bitmap as 16bit RGB565 which also could save some memory
you can do the math yourself to find the best SampleSize and read up here: Loading Large Bitmaps Efficiently | Android Developers
loadbitmap2(String Directory, String Filename, Integer SampleSize, Boolean RGB565)
*Setting this Boolean RGB565 flag to true, acts like a converter to convert the 24bit image file into a 16bit
BitmapLib.loadbitmap Will act like LoadBitmapSample, but if it runs into an out of memory it will automatically load a really low res image so your app won't crash and you get the bad app review on Google Play Market from one of the 1500+ devices out there. ( You never know what a device has running and how much memory is available when your app is loaded. )
loadbitmap(String Directory, String Filename, Integer Width, Integer Height)
BitmapLib.Garbage - Runs the Garbage Collection
Information about Memory
BitmapLib.FreeMem - returns free memory available from heap double memoryAvailable = Runtime.getRuntime().maxMemory() - (heapSize - heapRemaining) - nativeUsage
BitmapLib.FreeMem2 - returns freeMemory long freeMemory = (Runtime.getRuntime().maxMemory()) - (Debug.getNativeHeapAllocatedSize());
BitmapLib.heapRemaining - returns heapRemaining Runtime.getRuntime().freeMemory();
BitmapLib.heapSize - returns totalMemory Runtime.getRuntime().totalMemory();
BitmapLib.MaxMem - returns MaxMemory Runtime.getRuntime().maxMemory()
BitmapLib.nativeUsage - returns free memory available from heap Debug.getNativeHeapAllocatedSize();
BitmapLib.GlobalAllocSize
BitmapLib.GlobalFreedSize
Example usage:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Please test with some big images/bitmaps.
Thanks in Advance
Vb1992
Library Revision History:
Old...... Library is version 1.0 - June 29th, 2012
Old...... Library is version 1.1 - June 29th, 2012
Old...... Library is version 1.2 - July 2nd, 2012
New...... Library is version 1.3 - July 2nd, 2012
improved algorithmic values for loadbitmap
added Log( GlobalAllocSize)
added Log( GlobalFreedSize)
			
			- SmartBitmap
 Permissions:- android.permission.WRITE_EXTERNAL_STORAGE
 - GlobalAllocSize As Long
 returns getGlobalAllocSize;
- GlobalFreedSize As Long
 returns getGlobalFreedSize;
 - FreeMem As Double
 returns free memory available from heap
 double memoryAvailable = Runtime.getRuntime().maxMemory() - (heapSize - heapRemaining) - nativeUsage;
- FreeMem2 As Long
 returns freeMemory
 long freeMemory = (Runtime.getRuntime().maxMemory()) - (Debug.getNativeHeapAllocatedSize());
- Garbage
 Runs the Garbage Collector to free memory
 Make sure your code is good first you are not initializing bitmaps aggressively
 No amount of System.gc() calls will help a memory leak
 You should split up the work and cache your data to file(s) and remove objects accordingly.
 If you really need more memory you should run your java app with larger heap memory set
- HowBig (Directory As String, Filename As String) As String
 HowBig(String Directory, String Filename)
 returns height/width as one combined string variable
- MaxMem As Double
 returns MaxMemory
 Runtime.getRuntime().maxMemory()
- heapRemaining As Double
 returns heapRemaining
 Runtime.getRuntime().freeMemory();
- heapSize As Double
 returns totalMemory
 Runtime.getRuntime().totalMemory();
- loadbitmap (Directory As String, Filename As String, reqWidth As Integer, reqHeight As Integer) As Bitmap
 returns a simple bitmap
 dont use file.dirassets ever, copy image over to another place from project
 example: Activity.loadbitmap(mm.GetSafeBitmap(File.DirInternal,"/moon.jpg",Activity.height,Activity.width))
 If this runs into memory problems, it's going to load a really low res image which will look bad
 but it might not crash the app
- loadbitmap2 (Directory As String, Filename As String, SampleSize As Integer, RGB565 As Boolean) As Bitmap
 loadbitmap2(String Directory, String Filename, Integer SampleSize, Boolean RGB565)
 returns a safe sized bitmap
 dont use file.dirassets ever, copy image over to another place from project
 example: Activity.SetBackgroundImage(mm.loadbitmap2(File.DirInternal,"/moon.jpg",8))
 SampleSize, can be 2, 4, ,6, 8,....16, 32...etc
 RGB565=True will set options.inPreferredConfig = Config.RGB_565;
- nativeUsage As Double
 returns free memory available from heap
 Debug.getNativeHeapAllocatedSize();
 
BitmapLib.HowBig - returns the height/width of an image
Msgbox(BitmapLib.HowBig(File.DirInternal,"/moon3.jpg"),"SIZE")
BitmapLib.loadbitmap2 This allows you to pass a SampleSize
Also lets you choose loading the bitmap as 16bit RGB565 which also could save some memory
you can do the math yourself to find the best SampleSize and read up here: Loading Large Bitmaps Efficiently | Android Developers
loadbitmap2(String Directory, String Filename, Integer SampleSize, Boolean RGB565)
*Setting this Boolean RGB565 flag to true, acts like a converter to convert the 24bit image file into a 16bit
BitmapLib.loadbitmap Will act like LoadBitmapSample, but if it runs into an out of memory it will automatically load a really low res image so your app won't crash and you get the bad app review on Google Play Market from one of the 1500+ devices out there. ( You never know what a device has running and how much memory is available when your app is loaded. )
loadbitmap(String Directory, String Filename, Integer Width, Integer Height)
BitmapLib.Garbage - Runs the Garbage Collection
Information about Memory
BitmapLib.FreeMem - returns free memory available from heap double memoryAvailable = Runtime.getRuntime().maxMemory() - (heapSize - heapRemaining) - nativeUsage
BitmapLib.FreeMem2 - returns freeMemory long freeMemory = (Runtime.getRuntime().maxMemory()) - (Debug.getNativeHeapAllocatedSize());
BitmapLib.heapRemaining - returns heapRemaining Runtime.getRuntime().freeMemory();
BitmapLib.heapSize - returns totalMemory Runtime.getRuntime().totalMemory();
BitmapLib.MaxMem - returns MaxMemory Runtime.getRuntime().maxMemory()
BitmapLib.nativeUsage - returns free memory available from heap Debug.getNativeHeapAllocatedSize();
BitmapLib.GlobalAllocSize
BitmapLib.GlobalFreedSize
Example usage:
			
				B4X:
			
		
		
		Dim BitmapLib As SmartBitmap
File.Copy(File.DirAssets,"moon3.jpg",File.DirInternal,"moon3.jpg")
        Activity.SetBackgroundImage(BitmapLib.loadbitmap2(File.DirInternal,"/moon3.jpg",1,True))
      'Activity.SetBackgroundImage(BitmapLib.loadbitmap(File.DirInternal,"/moon3.jpg",Activity.Width,Activity.Height))
Msgbox(BitmapLib.HowBig(File.DirInternal,"/moon3.jpg"),"SIZE")
Msgbox(BitmapLib.heapRemaining,"HeapRemaining")Please test with some big images/bitmaps.
Thanks in Advance
Vb1992
Library Revision History:
Old...... Library is version 1.0 - June 29th, 2012
Old...... Library is version 1.1 - June 29th, 2012
Old...... Library is version 1.2 - July 2nd, 2012
New...... Library is version 1.3 - July 2nd, 2012
improved algorithmic values for loadbitmap
added Log( GlobalAllocSize)
added Log( GlobalFreedSize)
Attachments
			
				Last edited: 
			
		
	
							 
				 
 
		 
 
		 
			 
 
		 
 
		 
 
		 
 
		