Skip to content

Commit

Permalink
Move AnimationsDemo out of docs repo.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark McLemore committed Sep 18, 2015
1 parent 94c2afa commit 58447b2
Show file tree
Hide file tree
Showing 59 changed files with 1,222 additions and 0 deletions.
28 changes: 28 additions & 0 deletions AnimationDemo/AnimationDrawableActivity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
namespace com.xamarin.evolve2013.animationsdemo
{
using Android.App;
using Android.Graphics.Drawables;
using Android.OS;
using Android.Widget;

[Activity(Theme = "@android:style/Theme.Holo.Light.DarkActionBar", Label = "@string/title_animationdrawable")]
public class AnimationDrawableActivity : Activity
{
private AnimationDrawable _asteroidDrawable;

protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_imageandbutton);

// Load the animation from resources
_asteroidDrawable = (AnimationDrawable)Resources.GetDrawable(Resource.Drawable.spinning_asteroid);
ImageView imageView = FindViewById<ImageView>(Resource.Id.imageView1);
imageView.SetImageDrawable(_asteroidDrawable);

Button spinAsteroidButton = FindViewById<Button>(Resource.Id.button1);
spinAsteroidButton.Text = Resources.GetString(Resource.String.title_spinasteroid);
spinAsteroidButton.Click += (sender, args) => _asteroidDrawable.Start();
}
}
}
173 changes: 173 additions & 0 deletions AnimationDemo/AnimationsDemo.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{CDD68867-1B3F-4858-9145-BFCFED057023}</ProjectGuid>
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>com.xamarin.evolve2013.animationsdemo</RootNamespace>
<AssemblyName>AnimationsDemo</AssemblyName>
<FileAlignment>512</FileAlignment>
<AndroidApplication>true</AndroidApplication>
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<TargetFrameworkVersion>v4.4</TargetFrameworkVersion>
<AndroidSupportedAbis>armeabi%3barmeabi-v7a%3bx86</AndroidSupportedAbis>
<AndroidStoreUncompressedFileExtensions />
<MandroidI18n />
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
<AndroidUseLatestPlatformSdk>False</AndroidUseLatestPlatformSdk>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidLinkMode>None</AndroidLinkMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
</PropertyGroup>
<ItemGroup>
<Reference Include="Mono.Android" />
<Reference Include="Mono.Android.Support.v13" />
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AnimationDrawableActivity.cs" />
<Compile Include="DrawingActivity.cs" />
<Compile Include="KarmaMeter.cs" />
<Compile Include="MainActivity.cs" />
<Compile Include="PropertyAnimationActivity.cs" />
<Compile Include="Resources\Resource.Designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ShapeDrawableActivity.cs" />
<Compile Include="TouchHighlightImageButton.cs" />
<Compile Include="ViewAnimationActivity.cs" />
<Compile Include="ZoomActivity.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
<None Include="Assets\AboutAssets.txt" />
<AndroidResource Include="Resources\Layout\activity_zoom.axml">
<SubType>AndroidResource</SubType>
</AndroidResource>
<AndroidResource Include="Resources\Layout\activity_imageandbutton.axml">
<SubType>AndroidResource</SubType>
</AndroidResource>
<AndroidResource Include="Resources\Layout\activity_propertyanimation.axml">
<SubType>Designer</SubType>
</AndroidResource>
<AndroidResource Include="Resources\Layout\activity_drawing.axml">
<SubType>AndroidResource</SubType>
</AndroidResource>
<AndroidResource Include="Resources\Layout\activity_shapedrawable.axml">
<SubType>AndroidResource</SubType>
</AndroidResource>
<AndroidResource Include="Resources\Drawable\shape_rounded_blue_rect.xml" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\Values\Strings.xml" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\Drawable\ic_launcher.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\ic_action_info.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\ic_action_new.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\ic_action_photo.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\ic_launcher.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-hdpi\ic_list_remove.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi\ic_action_info.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi\ic_action_new.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi\ic_action_photo.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi\ic_launcher.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-mdpi\ic_list_remove.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_action_info.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_action_new.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_action_photo.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_launcher.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-xhdpi\ic_list_remove.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-nodpi\image1.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-nodpi\image2.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-nodpi\thumb1.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable-nodpi\thumb2.png" />
</ItemGroup>
<ItemGroup>
<Content Include="Properties\AndroidManifest.xml" />
<AndroidResource Include="Resources\Drawable\spinning_asteroid.xml" />
<AndroidResource Include="Resources\Drawable\asteroid01.png" />
<AndroidResource Include="Resources\Drawable\asteroid02.png" />
<AndroidResource Include="Resources\Drawable\asteroid03.png" />
<AndroidResource Include="Resources\Drawable\asteroid04.png" />
<AndroidResource Include="Resources\Drawable\asteroid05.png" />
<AndroidResource Include="Resources\Drawable\asteroid06.png" />
<AndroidResource Include="Resources\Drawable\ship2_2.png" />
<AndroidResource Include="Resources\anim\hyperspace.xml" />
<AndroidResource Include="Resources\Drawable\shape_oval_purple_gradient.xml" />
<AndroidResource Include="Resources\drawable-xxhdpi\ic_launcher.png" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
22 changes: 22 additions & 0 deletions AnimationDemo/AnimationsDemo.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimationsDemo", "AnimationsDemo.csproj", "{CDD68867-1B3F-4858-9145-BFCFED057023}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CDD68867-1B3F-4858-9145-BFCFED057023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CDD68867-1B3F-4858-9145-BFCFED057023}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CDD68867-1B3F-4858-9145-BFCFED057023}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{CDD68867-1B3F-4858-9145-BFCFED057023}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CDD68867-1B3F-4858-9145-BFCFED057023}.Release|Any CPU.Build.0 = Release|Any CPU
{CDD68867-1B3F-4858-9145-BFCFED057023}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
19 changes: 19 additions & 0 deletions AnimationDemo/Assets/AboutAssets.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".

These files will be deployed with you package and will be accessible using Android's
AssetManager, like this:

public class ReadAsset : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

InputStream input = Assets.Open ("my_asset.txt");
}
}

Additionally, some Android functions will automatically load asset files:

Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
19 changes: 19 additions & 0 deletions AnimationDemo/DrawingActivity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
namespace com.xamarin.evolve2013.animationsdemo
{
using Android.App;
using Android.OS;

[Activity(Label = "@string/title_drawing", Theme = "@android:style/Theme.Holo.Light.DarkActionBar")]
public class DrawingActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_drawing);

KarmaMeter meter = FindViewById<KarmaMeter>(Resource.Id.karmaMeter);

meter.KarmaValue = 0.25d;
}
}
}
90 changes: 90 additions & 0 deletions AnimationDemo/KarmaMeter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
namespace com.xamarin.evolve2013.animationsdemo
{
using System;

using Android.Animation;
using Android.Content;
using Android.Graphics;
using Android.Util;
using Android.Views;

public class KarmaMeter : View
{
private const int DefaultHeight = 20;
private const int DefaultWidth = 120;

private Paint _negativePaint;
private double _position = 0.5;
private Paint _positivePaint;

public KarmaMeter(Context context, IAttributeSet attrs)
: this(context, attrs, 0)
{
Initialize();
}

public KarmaMeter(Context context, IAttributeSet attrs, int defStyle)
: base(context, attrs, defStyle)
{
Initialize();
}

public double KarmaValue
{
get { return _position; }
set
{
_position = Math.Max(0f, Math.Min(value, 1f));
Invalidate();
}
}

public void SetKarmaValue(double value, bool animate)
{
if (!animate)
{
KarmaValue = value;
return;
}

ValueAnimator animator = ValueAnimator.OfFloat((float)_position, (float)Math.Max(0f, Math.Min(value, 1f)));
animator.SetDuration(500);

animator.Update += (sender, e) => KarmaValue = (double)e.Animation.AnimatedValue;
animator.Start();
}

protected override void OnDraw(Canvas canvas)
{
base.OnDraw(canvas);
float middle = canvas.Width * (float)_position;

canvas.DrawPaint(_negativePaint);

canvas.DrawRect(0, 0, middle, canvas.Height, _positivePaint);
}

protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int width = MeasureSpec.GetSize(widthMeasureSpec);
SetMeasuredDimension(width < DefaultWidth ? DefaultWidth : width, DefaultHeight);
}

private void Initialize()
{
_positivePaint = new Paint
{
AntiAlias = true,
Color = Color.Rgb(0x99, 0xcc, 0),
};
_positivePaint.SetStyle(Paint.Style.FillAndStroke);

_negativePaint = new Paint
{
AntiAlias = true,
Color = Color.Rgb(0xff, 0x44, 0x44)
};
_negativePaint.SetStyle(Paint.Style.FillAndStroke);
}
}
}
Loading

0 comments on commit 58447b2

Please sign in to comment.