Tuesday, 6 October 2015

How to create custom renderer for ListView in android Xamarin.Forms?

Step 1- add follwoing code to your xaml page


<local:CustomListView  
x:Name="List"
    ItemsSource="{Binding yourDataList}"
    SelectedItem="{Binding ItemSelected, Mode=TwoWay}"
  BackgroundColor="Transparent">
  </local:CustomListView>


 Step 2- create class in your PCL

namespace YourNameSpace
{
public class CustomListView:ListView
{

}
}

 Step 3- create class platform specific like

 [assembly: ExportRenderer (typeof (CustomListView), typeof (CustomListViewRenderer))]
namespace YourNamespace.Droid
{
public class CustomListViewRenderer: ListViewRenderer
{
public CustomListViewRenderer ()
{
}
protected override void OnElementChanged (ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged (e);
var listView= Control as Android.Widget.ListView;
listView.Divider = null;
listView.DividerHeight = 0;

}
}
}

Friday, 26 June 2015

How to create custom renderer for Slider Xamarin.forms android

[assembly: ExportRenderer (typeof (CustomSlider), typeof (CustomSliderRenderer))]
namespace Sample.Droid
{
public class CustomSliderRenderer :SliderRenderer
{
public CustomSliderRenderer ()
{
}

protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.ProgressDrawable.SetColorFilter(Android.Graphics.Color.Red, PorterDuff.Mode.SrcIn);
this.Control.SetOnSeekBarChangeListener(new SeekBarListener());
}
}



public class SeekBarListener : Java.Lang.Object, SeekBar.IOnSeekBarChangeListener
{
public void OnProgressChanged(SeekBar seekBar, int progress, bool fromUser)
{
seekBar.Progress = progress;
}

public void OnStartTrackingTouch(SeekBar seekBar)
{
}

public void OnStopTrackingTouch(SeekBar seekBar)
{
}
}
}
}

Monday, 25 May 2015

How to read/write value in sharedpreferences xamarin.forms android?


// read values using key value 
public static string GetString(this Application application, string key)
{
var prefs = application.Context.GetSharedPreferences(application.PackageName, FileCreationMode.Private);
return prefs.GetString(key, string.Empty);
}


//write values
public static void SaveString(this Application application, string key, string value)
{
var prefs = application.Context.GetSharedPreferences(application.PackageName, FileCreationMode.Private);

var prefEditor = prefs.Edit();

prefEditor.PutString(key, value);

prefEditor.Commit();

How to create Bitmap image and store to sdcard xamarin.forms android?

Bitmap bitmap = Control.DrawingCache;
            Canvas canvas = new Canvas(bitmap);
            ImageView image = new ImageView(Control.Context);
            Java.IO.File file = Android.OS.Environment.ExternalStorageDirectory;
            //Captured chart image
            image.SetImageBitmap(bitmap);
var path = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;

path = System.IO.Path.Combine(path, e.Name);      
FileStream fos = new FileStream(path, FileMode.CreateNew);

            bitmap.Compress(Bitmap.CompressFormat.Png, 100, fos);