用于自我显示的图片库代码:在 C# 中用于 android 应用程序
Image Gallery code for self display: in C# for android Application
我想为 Android 的 Gallery App 寻求一些帮助,
我在 C# 中使用了 Visual studio 2019,我成功地制作了代码 2 按钮“下一个”和“上一个”
但是对于“开始”,我无法将其编码为自我展示图片和幻灯片放映:
请在此处找到完整代码:
using Android.App;
using Android.OS;
using AndroidX.AppCompat.App;
using Android.Widget;
using System;
namespace Gallery
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
int[] imageTab;
int counter = 0;
Button btnPREVIOUS, btnNEXT, btnSTART;
ImageView imageView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
btnPREVIOUS = FindViewById<Button>(Resource.Id.btnPREVIOUS);
btnNEXT = FindViewById<Button>(Resource.Id.btnNEXT);
btnSTART = FindViewById<Button>(Resource.Id.btnSTART);
imageView = FindViewById<ImageView>(Resource.Id.imageView1);
imageTab = new int[4];
imageTab[0] = Resource.Drawable.img1;
imageTab[1] = Resource.Drawable.img2;
imageTab[2] = Resource.Drawable.img3;
imageTab[3] = Resource.Drawable.img4;
btnNEXT.Click += ButtonClicked;
btnPREVIOUS.Click += ButtonClicked;
btnSTART.Click += ButtonClicked;
}
private void ButtonClicked2(object sender, EventArgs e)
{
if (timer.Enabled)
{
btnSTART.Text = "Start Slideshow";
// initialize it in the constructor to fire every 2s
timer = new Timer(2000);
// Hook up the Elapsed event for the timer.
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Enabled = !timer.Enabled;
}
else
{
btnSTART.Text = "Stop Slideshow";
timer.Stop();
}
}
private void ButtonClicked(object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.Id)
{
case (Resource.Id.btnNEXT):
{
if (counter < imageTab.Length - 1) counter++;
else counter = 0;
imageView.SetImageResource(imageTab[counter]);
}
break;
case (Resource.Id.btnPREVIOUS):
{
if (counter > 0) counter--; else counter =
imageTab.Length - 1;
imageView.SetImageResource(imageTab[counter]);
}
break;
}
}
}
}
I am missing this that one with red encircled
首先,创建一个计时器
using System.Timers;
// declare it in your class
Timer timer;
// initialize it in the constructor to fire every 2s
timer = new Timer(2000);
// Hook up the Elapsed event for the timer.
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
然后创建 Elapsed
处理程序
private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
// increment counter and display image
counter++;
if (counter >= imageTab.Length) counter = 0;
imageView.SetImageResource(imageTab[counter]);
}
最后,单击按钮时切换计时器
private void ToggleTimer(object sender, EventArgs a)
{
If (timer.Enabled)
{
timer.Stop();
} else {
timer.Start();
}
}
并将其分配给您的按钮
btnSTART.Click += ToggleTimer;
我想为 Android 的 Gallery App 寻求一些帮助, 我在 C# 中使用了 Visual studio 2019,我成功地制作了代码 2 按钮“下一个”和“上一个” 但是对于“开始”,我无法将其编码为自我展示图片和幻灯片放映: 请在此处找到完整代码:
using Android.App;
using Android.OS;
using AndroidX.AppCompat.App;
using Android.Widget;
using System;
namespace Gallery
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
int[] imageTab;
int counter = 0;
Button btnPREVIOUS, btnNEXT, btnSTART;
ImageView imageView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
btnPREVIOUS = FindViewById<Button>(Resource.Id.btnPREVIOUS);
btnNEXT = FindViewById<Button>(Resource.Id.btnNEXT);
btnSTART = FindViewById<Button>(Resource.Id.btnSTART);
imageView = FindViewById<ImageView>(Resource.Id.imageView1);
imageTab = new int[4];
imageTab[0] = Resource.Drawable.img1;
imageTab[1] = Resource.Drawable.img2;
imageTab[2] = Resource.Drawable.img3;
imageTab[3] = Resource.Drawable.img4;
btnNEXT.Click += ButtonClicked;
btnPREVIOUS.Click += ButtonClicked;
btnSTART.Click += ButtonClicked;
}
private void ButtonClicked2(object sender, EventArgs e)
{
if (timer.Enabled)
{
btnSTART.Text = "Start Slideshow";
// initialize it in the constructor to fire every 2s
timer = new Timer(2000);
// Hook up the Elapsed event for the timer.
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Enabled = !timer.Enabled;
}
else
{
btnSTART.Text = "Stop Slideshow";
timer.Stop();
}
}
private void ButtonClicked(object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.Id)
{
case (Resource.Id.btnNEXT):
{
if (counter < imageTab.Length - 1) counter++;
else counter = 0;
imageView.SetImageResource(imageTab[counter]);
}
break;
case (Resource.Id.btnPREVIOUS):
{
if (counter > 0) counter--; else counter =
imageTab.Length - 1;
imageView.SetImageResource(imageTab[counter]);
}
break;
}
}
}
}
I am missing this that one with red encircled
首先,创建一个计时器
using System.Timers;
// declare it in your class
Timer timer;
// initialize it in the constructor to fire every 2s
timer = new Timer(2000);
// Hook up the Elapsed event for the timer.
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
然后创建 Elapsed
处理程序
private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
// increment counter and display image
counter++;
if (counter >= imageTab.Length) counter = 0;
imageView.SetImageResource(imageTab[counter]);
}
最后,单击按钮时切换计时器
private void ToggleTimer(object sender, EventArgs a)
{
If (timer.Enabled)
{
timer.Stop();
} else {
timer.Start();
}
}
并将其分配给您的按钮
btnSTART.Click += ToggleTimer;