我有一些调整图像大小的代码,所以我可以获得图像中心的缩放块 - 我使用它来获取UIImage并返回图像的小方形表示,类似于在专辑视图中看到的照片应用程序.(我知道我可以使用a UIImageView并调整裁剪模式以获得相同的结果,但这些图像有时会显示在中UIWebViews).
我已经开始注意到这段代码中的一些崩溃,我有点难过.我有两种不同的理论,我想知道是否有基础.
理论1)我通过绘制到目标大小的屏幕外图像上下文来实现裁剪.由于我想要图像的中心部分,我设置CGRect传递给的参数drawInRect大于我的图像上下文边界的东西.我希望这是犹太洁食,但我是否试图汲取我不应该触及的其他记忆?
理论2)我在后台线程中做了所有这些.我知道UIKit的部分内容仅限于主线程.我假设/希望绘制到屏幕外的视图不是其中之一.我错了吗?
(哦,我多么想念NSImage's drawInRect:fromRect:operation:fraction:方法.)
cocoa-touch image-manipulation objective-c uiimagepickercontroller ios
我想知道如何简单地掩盖任何类型的UIView的可见区域.到目前为止,我所阅读的所有答案/教程都描述了用图像,渐变或创建圆角来掩盖,这比我以前的方式更先进.
示例:我有一个带有边界(0,0,100,100)的UIView,我想用掩码切掉视图的右半部分.因此我的面具框架将是(0,0,50,100).
知道怎么做这个简单吗?我不想覆盖drawrect方法,因为这应该适用于任何UIView.
我试过这个,但它只是让整个视图看不见.
CGRect mask = CGRectMake(0, 0, 50, 100);
UIView *maskView = [[UIView alloc] initWithFrame:mask];
viewToMask.layer.mask = maskView.layer;
Run Code Online (Sandbox Code Playgroud) 基本上,我重新问这个问题,但是在android上实现它.
我试图允许用户在静态图像上的过滤器之间滑动.这个想法是当滤镜在其上方滚动时图像保持原位.Snapchat最近发布了一个实现此功能的版本.这段视频显示了我想要在1:05完成的事情.
我尝试使用覆盖填充列表并使用onFling和onDraw进行分页,但是我丢失了动画.有没有办法可以用ViewPager完成?
编辑:根据要求,我提供了覆盖视图分页的实现.它使用位于图像视图顶部的透明png图像填充viewpager.此外,此代码在C#中,因为我使用的是Xamarin Android.对于那些不熟悉C#的人来说,它与Java非常相似
...
static List<ImageView> overlayList = new List<ImageView>();
...
public class OverlayFragmentAdapter : FragmentPagerAdapter
{
public OverlayFragmentAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
{
}
public override int Count
{
get { return 5; } //hardcoded temporarily
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
return new OverlayFragment ();
}
}
public class OverlayFragment : Android.Support.V4.App.Fragment
{
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate (Resource.Layout.fragment_overlay, container, false);
LinearLayout …Run Code Online (Sandbox Code Playgroud) ios ×2
android ×1
cocoa-touch ×1
imagefilter ×1
java ×1
mask ×1
objective-c ×1
snapchat ×1
uiview ×1