API Level: 16
Android 4.1 (JELLY_BEAN
)
is a progression of the platform that offers improved
performance and enhanced user experience. It adds new features for users and app
developers. This document provides an introduction to the most notable and
useful new APIs for app developers.
Declare your app API Level
To better optimize your app for devices running Android 4.1,
you should set your targetSdkVersion
to
"16"
, install it on an Android 4.1 system image,
test it, then publish an update with this change.
You
can use APIs in Android 4.1 while also supporting older versions by adding
conditions to your code that check for the system API level before executing
APIs not supported by your minSdkVersion
.
To learn more about
maintaining backward-compatibility, read Creating Backward-Compatible
UIs.
More information about how API levels work is available in What is API Level?
As an app developer, Android 4.1 is available to you from the SDK Manager as a system image you can run in the Android emulator and an SDK platform against which you can build your app. You should download the system image and platform as soon as possible to build and test your app on Android 4.1.
App Components
Isolated services
By specifying android:isolatedProcess="true"
in the
<service>
tag, your Service
will run under
its own isolated user ID process that has no permissions of its own.
Memory management
New ComponentCallbacks2
constants such as TRIM_MEMORY_RUNNING_LOW
and TRIM_MEMORY_RUNNING_CRITICAL
provide foreground
processes more information about
memory state before the system calls onLowMemory()
.
New getMyMemoryState(ActivityManager.RunningAppProcessInfo)
method allows you to
retrieve the general memory state.
Content providers
A new method, acquireUnstableContentProviderClient()
, allows you to access a ContentProviderClient
that may be "unstable" such that your app will not crash if
the content provider does. It's useful when you are interacting with content providers in a separate
app.
Live Wallpapers
New intent protocol to directly launch the live wallpaper preview activity so you can help users easily select your live wallpaper without forcing them to leave your app and navigate through the Home wallpaper picker.
To launch the live wallpaper picker, call startActivity()
with an Intent
using
ACTION_CHANGE_LIVE_WALLPAPER
and an extra
that specifies your live wallpaper ComponentName
as a string in EXTRA_LIVE_WALLPAPER_COMPONENT
.
App stack navigation
Android 4.1 makes it much easier to implement the proper design patterns for Up navigation.
All you need to do is add the android:parentActivityName
to each <activity>
element in
your manifest file. The system uses this information to open the appropriate activity when the user
presses the Up button in the action bar (while also finishing the current activity). So if you
declare the android:parentActivityName
for each activity, you don't need the onOptionsItemSelected()
method to handle click
events on the action bar's app icon—the system now handles that event and resumes or
creates the appropriate activity.
This is particularly powerful for scenarios in which the user enters one of your app's activities
through a "deep dive" intent such as from a notification or an intent from
different app (as described in the design guide for Navigating Between Apps). When
the user enters your activity this way, your app may not naturally have a back stack of
activities that can be resumed as the user navigates up. However, when you supply the android:parentActivityName
attribute for your activities, the system recognizes
whether or not your app already contains a back stack of parent activities and, if not, constructs
a synthetic back stack that contains all parent activities.
Note: When the user enters a deep activity in your app and it creates a new task for your app, the system actually inserts the stack of parent activities into the task. As such, pressing the Back button also navigates back through the stack of parent activities.
When the system creates a synthetic back stack for your app, it builds a basic Intent
to create a new instance of each parent activity. So there's no
saved state for the parent activities the way you'd expect had the user naturally navigated
through
each activity. If any of the parent activities normally show a UI that's dependent on
the user's context, that context information will be missing and you should deliver it when the
user
navigates back through the stack. For example, if the user is viewing an album
in a music app, navigating up might bring them to an activity that lists all albums in a chosen
music genre. In this case, if the stack must be created, it's necessary that you inform the parent
activity what genre the current album belongs to so that the parent can display the proper list as
if the user actually came from that activity. To deliver such information to a synthetic parent
activity, you must override the onPrepareNavigateUpTaskStack()
method. This
provides you with a TaskStackBuilder
object that the system created in order to
synthesize the parent activities. The TaskStackBuilder
contains Intent
objects that the system uses to create each parent activity. In your
implementation of onPrepareNavigateUpTaskStack()
, you can modify the appropriate Intent
to
add extra data that the parent activity can use to determine the appropriate context and display
the appropriate UI.
When the system creates the TaskStackBuilder
, it adds the Intent
objects that are used to create the parent activities in their logical
order beginning from the top of the activity tree. So, the last Intent
added to the internal array is the direct parent of the current activity. If
you want to modify the Intent
for the activity's parent, first determine
the length of the array with getIntentCount()
and pass that
value to editIntentAt()
.
If your app structure is more complex, there are several other APIs available that allow you to handle the behavior of Up navigation and fully customize the synthetic back stack. Some of the APIs that give you additional control include:
onNavigateUp()
- Override this to perform a custom action when the user presses the Up button.
navigateUpTo(Intent)
- Call this to finish the current activity and go to the activity indicated by the
supplied
Intent
. If the activity exists in the back stack, but is not the closest parent, then all other activities between the current activity and the activity specified with the intent are finished as well. getParentActivityIntent()
- Call this to get the
Intent
that will start the logical parent for the current activity. shouldUpRecreateTask(Intent)
- Call this to query whether a synthetic back stack must be created in order to navigate up. Returns true if a synthetic stack must be created, false if the appropropriate stack already exists.
finishAffinity()
- Call this to finish the current activity and all parent activities with the same
task affinity that are chained to the current activity.
If you override the default behaviors such as
onNavigateUp()
, you should call this method when you create a synthetic back stack upon Up navigation. onCreateNavigateUpTaskStack
- Override this if you need to fully control how the synthetic task stack is created. If you want to simply add some extra data to the intents for your back stack, you should instead override
onPrepareNavigateUpTaskStack()
However, most apps don't need to use these APIs or implement onPrepareNavigateUpTaskStack()
, but can can achieve the correct behavior simply by
adding android:parentActivityName
to each <activity>
element.
Multimedia
Media codecs
The MediaCodec
class provides access to low-level media codecs for encoding
and decoding your media. You can instantiate a MediaCodec
by calling createEncoderByType()
to encode media or call createDecoderByType()
to decode media. Each of these
methods take a MIME type for the type of media you want to encode or decode, such as "video/3gpp"
or "audio/vorbis"
.
With an instance of MediaCodec
created, you can then call configure()
to specify properties such as the media format or
whether or not the content is encrypted.
Whether you're encoding or decoding your media, the rest of the process is the same after you
create the MediaCodec
. First call getInputBuffers()
to get an array of input ByteBuffer
objects and getOutputBuffers()
to get an array of output ByteBuffer
objects.
When you're ready to encode or decode, call dequeueInputBuffer()
to get the index position of the ByteBuffer
(from the array of input buffers) that you should use to to feed in your source
media. After you fill the ByteBuffer
with your source media, release ownership
of the buffer by calling queueInputBuffer()
.
Likewise for the output buffer, call dequeueOutputBuffer()
to get the index position of the ByteBuffer
where you'll receive the results. After you read the output from the ByteBuffer
,
release ownership by calling releaseOutputBuffer()
.
You can handle encrypted media data in the codecs by calling queueSecureInputBuffer()
in conjunction with
the MediaCrypto
APIs, instead of the normal queueInputBuffer()
.
For more information about how to use codecs, see the MediaCodec
documentation.
Record audio on cue
New method startRecording()
allows
you to begin audio recording based on a cue defined by a MediaSyncEvent
.
The MediaSyncEvent
specifies an audio session
(such as one defined by MediaPlayer
), which when complete, triggers
the audio recorder to begin recording. For example, you can use this functionality to
play an audio tone that indicates the beginning of a recording session and recording
automatically begins so you don't have to manually synchronize the tone and the beginning
of recording.
Timed text tracks
The MediaPlayer
now handles both in-band and out-of-band text tracks.
In-band text tracks come as a text track within an MP4 or 3GPP media source. Out-of-band text
tracks can be added as an external text source via addTimedTextSource()
method. After all external text
track sources are added, getTrackInfo()
should be called to get
the refreshed list of all available tracks in a data source.
To set the track to use with the MediaPlayer
, you must
call selectTrack()
, using the index
position for the track you want to use.
To be notified when the text track is ready to play, implement the
MediaPlayer.OnTimedTextListener
interface and pass
it to setOnTimedTextListener()
.
Audio effects
The AudioEffect
class now supports additional audio
pre-processing types when capturing audio:
- Acoustic Echo Canceler (AEC) with
AcousticEchoCanceler
removes the contribution of the signal received from the remote party from the captured audio signal. - Automatic Gain Control (AGC) with
AutomaticGainControl
automatically normalizes the output of the captured signal. - Noise Suppressor (NS) with
NoiseSuppressor
removes background noise from the captured signal.
You can apply these pre-processor effects on audio captured with an AudioRecord
using one of the AudioEffect
subclasses.
Note: It's not guaranteed that all devices support these
effects, so you should always first check availability by calling isAvailable()
on the corresponding
audio effect class.
Gapless playback
You can now perform gapless playback between two separate
MediaPlayer
objects. At any time before your first MediaPlayer
finishes,
call setNextMediaPlayer()
and Android
attempts to start the second player the moment that the first one stops.
Camera
Auto focus movement
The new interface Camera.AutoFocusMoveCallback
allows you to listen
for changes to the auto focus movement. You can register your interface with setAutoFocusMoveCallback()
. Then when the camera
is in a continuous autofocus mode (FOCUS_MODE_CONTINUOUS_VIDEO
or
FOCUS_MODE_CONTINUOUS_PICTURE
), you'll receive a call
to onAutoFocusMoving()
,
which tells you whether auto focus has started moving or has stopped moving.
Camera sounds
The MediaActionSound
class provides a simple set of APIs to produce
standard sounds made by the camera or other media actions. You should use these APIs to play
the appropriate sound when building a custom still or video camera.
To play a sound, simply instantiate a MediaActionSound
object, call
load()
to pre-load the desired sound, then at the
appropriate time, call play()
.
Connectivity
Android Beam
Android Beam™ now supports large payload transfers over Bluetooth. When you define the data
to transfer with either the new setBeamPushUris()
method or the new callback interface NfcAdapter.CreateBeamUrisCallback
, Android
hands off the data transfer to Bluetooth or another alternate transport to
achieve faster transfer speeds. This is especially useful for large payloads such as image and
audio files and requires no visible pairing between the devices. No additional work is required by
your app to take advantage of transfers over Bluetooth.
The setBeamPushUris()
method takes an array of
Uri
objects that specify the data you want to transfer from your app.
Alternatively, you can implement the NfcAdapter.CreateBeamUrisCallback
interface, which you can specify for your activity by calling setBeamPushUrisCallback()
.
When using the
callback interface, the system calls the interface's createBeamUris()
method when the
user executes a share with Android Beam so that you can define the URIs to share at share-time.
This is useful if the URIs to share might vary depending on the user context within the
activity, whereas calling setBeamPushUris()
is
useful when the URIs to share are unchanging and you can safely define them ahead of time.
Network service discovery
Android 4.1 adds support for multicast DNS-based service discovery, which allows you to find and connect to services offered by peer devices over Wi-Fi, such as mobile devices, printers, cameras, media players, and others that are registered on the local network.
The new package android.net.nsd
contains the new APIs that allow you to
broadcast your services on the local network, discover local devices on the network, and
connect to devices.
To register your service, you must first create an NsdServiceInfo
object and define the various properties of your service with methods such as
setServiceName()
,
setServiceType()
, and
setPort()
.
Then you need to implement NsdManager.RegistrationListener
and pass it to registerService()
with your NsdServiceInfo
.
To discover services on the network, implement NsdManager.DiscoveryListener
and pass it to discoverServices()
.
When your NsdManager.DiscoveryListener
receives callbacks about services
found, you need to resolve the service by calling
resolveService()
, passing it an
implementation of NsdManager.ResolveListener
that receives
an NsdServiceInfo
object that contains information about the
discovered service, allowing you to initiate the connection.
Wi-Fi P2P service discovery
The Wi-Fi P2P APIs are enhanced in Android 4.1 to support pre-association service discovery in
the WifiP2pManager
. This allows you to discover and filter nearby
devices by services using Wi-Fi P2P before connecting to one, while Network Service
Discovery allows you to discover a service on an existing connected network (such as a local Wi-Fi
network).
To broadcast your app as a service over Wi-Fi so that other devices can discover
your app and connect to it, call addLocalService()
with a
WifiP2pServiceInfo
object that describes your app services.
To initiate discover of nearby devices over Wi-Fi, you need to first decide whether you'll
communicate using Bonjour or Upnp. To use Bonjour, first set up some callback listeners with
setDnsSdResponseListeners()
, which takes both a WifiP2pManager.DnsSdServiceResponseListener
and WifiP2pManager.DnsSdTxtRecordListener
. To use Upnp, call
setUpnpServiceResponseListener()
, which takes a WifiP2pManager.UpnpServiceResponseListener
.
Before you can start discovering services on local devices, you also need to call addServiceRequest()
. When the WifiP2pManager.ActionListener
you pass to this method receives a
successful callback, you can then begin discovering services on local devices by calling discoverServices()
.
When local services are discovered, you'll receive a callback to either the WifiP2pManager.DnsSdServiceResponseListener
or WifiP2pManager.UpnpServiceResponseListener
, depending on whether you
registered to use Bonjour or Upnp. The callback received in either case contains a
WifiP2pDevice
object representing the peer device.
Network usage
The new method isActiveNetworkMetered()
allows you to
check whether the device is currently connected to a metered network. By checking this state
before performing intensive network transactions, you can help manage the data usage that may cost your users money and make
informed decisions about whether to perform the transactions now or later (such as when the
device becomes connected to Wi-Fi).
Accessibility
Accessibility service APIs
The reach of accessibility service APIs has been significantly increased in Android 4.1. It now
allows you to build services that monitor and respond to more input events, such as complex gestures
using onGesture()
and other
input events through additions to the AccessibilityEvent
, AccessibilityNodeInfo
and AccessibilityRecord
classes.
Accessibility services can also perform actions on behalf of the user, including clicking,
scrolling and stepping through text using performAction
and setMovementGranularities
. The performGlobalAction()
method
also allows services to perform actions such as Back, Home, and open Recent
Apps and Notifications.
Customizable app navigation
When building an Android app, you can now customize navigation schemes by finding focusable
elements and input widgets using findFocus()
and focusSearch()
, and set focus
using setAccessibilityFocused()
.
More accessible widgets
The new android.view.accessibility.AccessibilityNodeProvider
class allows you to
surface complex custom views to accessibility services so they can present the information in a
more accessible way. The android.view.accessibility.AccessibilityNodeProvider
allows a user
widget with advanced content, such as a calendar grid, to present a logical semantic structure for
accessibility services that is completely separate from the widget’s layout structure. This semantic
structure allows accessibility services to present a more useful interaction model for users who are
visually impaired.
Copy and Paste
Copy and paste with intents
You can now associate a ClipData
object with an Intent
using the setClipData()
method.
This is especially useful when using an intent to transfer multiple content:
URIs to another
application, such as when sharing multiple documents. The content:
URIs supplied
this way will also respect the intent's flags to offer read or write access, allowing you to grant
access to multiple URIs in an the intent. When starting an ACTION_SEND
or ACTION_SEND_MULTIPLE
intent, the URIs supplied in the intent are now
automatically propagated to the ClipData
so that the receiver can have
access granted to them.
Support for HTML and string styles
The ClipData
class now supports styled text (either as HTML or
Android styled
strings). You can add HTML styled text to the ClipData
with newHtmlText()
.
Renderscript
Renderscript computation functionality has been enhanced with the following features:
- Support for multiple kernels within one script.
- Support for reading from allocation with filtered samplers from compute in a new script API
rsSample
. - Support for different levels of FP precision in
#pragma
. - Support for querying additional information from RS objects from a compute script.
- Numerous performance improvements.
New pragmas are also available to define the floating point precision required by your compute Renderscripts. This lets you enable NEON like operations such as fast vector math operations on the CPU path that wouldn’t otherwise be possible with full IEEE 754-2008 standard.
Note: The experimental Renderscript graphics engine is now deprecated.
Animation
Activity launch animations
You can now launch an Activity
using zoom animations or
your own custom animations. To specify the animation you want, use the ActivityOptions
APIs to build a Bundle
that you can
then pass to any of the
methods that start an activity, such as startActivity()
.
The ActivityOptions
class includes a different method for each
type of animation you may want to show as your activity opens:
makeScaleUpAnimation()
- Creates an animation that scales up the activity window from a specified starting position on the screen and a specified starting size. For example, the home screen in Android 4.1 uses this when opening an app.
makeThumbnailScaleUpAnimation()
- Creates an animation that scales up the activity window starting from a specified position and a provided thumbnail image. For example, the Recent Apps window in Android 4.1 uses this when returning to an app.
makeCustomAnimation()
- Creates an animation defined by your own resources: one that defines the animation for the activity opening and another for the activity being stopped.
Time animator
The new TimeAnimator
provides a simple callback
mechanism with the TimeAnimator.TimeListener
that notifies
you upon every frame of the animation. There is no duration, interpolation, or object value-setting with this Animator. The listener's callback receives information for each frame including
total elapsed time and the elapsed time since the previous animation frame.
User Interface
Notifications
In Android 4.1, you can create notifications with larger content regions, big image previews, multiple action buttons, and configurable priority.
Notification styles
The new method setStyle()
allows you to specify
one of three new styles for your notification that each offer a larger content region. To
specify the style for your large content region, pass setStyle()
one of the following objects:
Notification.BigPictureStyle
- For notifications that includes a large image attachment.
Notification.BigTextStyle
- For notifications that includes a lot of text, such as a single email.
Notification.InboxStyle
- For notifications that include a list of strings, such as snippets from multiple emails.
Notification actions
There's now support for up to two action buttons that appear at the bottom of the notification message, whether your notification uses the normal or larger style.
To add an action button, call addAction()
. This method takes three arguments: a drawable resource for an icon,
text for the button, and a PendingIntent
that defines the action
to perfrom.
Priorities
You can now hint to the system how important your notification is to affect the
order of your notification in the list by setting
the priority with setPriority()
. You
can pass this one of five different priority levels defined by PRIORITY_*
constants
in the Notification
class. The default is PRIORITY_DEFAULT
, and there's two levels higher and two levels lower.
High priority notifications are things that users generally want to respond to quickly, such as a new instant message, text message, or impending event reminder. Low priority notifications are things like expired calendar events or app promotions.
Controls for system UI
Android 4.0 (Ice Cream Sandwich) added new flags to control the visibility of the system UI
elements, such as to dim the appearance of the system bar or make it disappear completely on handsets.
Android 4.1 adds a few more flags that allow you to further control the appearance of system
UI elements and your activity layout in relation to them by calling setSystemUiVisibility()
and passing the following flags:
SYSTEM_UI_FLAG_FULLSCREEN
- Hides non-critical system UI (such as the status bar).
If your activity uses the action bar in overlay mode (by
enabling
android:windowActionBarOverlay
), then this flag also hides the action bar and does so with a coordinated animation when both hiding and showing the two. SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- Sets your activity layout to use the same screen area that's available when you've
enabled
SYSTEM_UI_FLAG_FULLSCREEN
even if the system UI elements are still visible. Although parts of your layout will be overlayed by the system UI, this is useful if your app often hides and shows the system UI withSYSTEM_UI_FLAG_FULLSCREEN
, because it avoids your layout from adjusting to the new layout bounds each time the system UI hides or appears. SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
- Sets your activity layout to use the same screen area that's available when you've
enabled
SYSTEM_UI_FLAG_HIDE_NAVIGATION
(added in Android 4.0) even if the system UI elements are still visible. Although parts of your layout will be overlayed by the navigation bar, this is useful if your app often hides and shows the navigation bar withSYSTEM_UI_FLAG_HIDE_NAVIGATION
, because it avoids your layout from adjusting to the new layout bounds each time the navigation bar hides or appears. SYSTEM_UI_FLAG_LAYOUT_STABLE
- You might want to add this flag if you're using
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
and/orSYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
to ensure that when you callfitSystemWindows()
on a view that the bounds defined remain consistent with regard to the available screen space. That is, with this flag set,fitSystemWindows()
will behave as if the visibility of system UI elements is unchanged even after you hide all system UI.
For more discussion about the other related system UI flags, read about those added in Android 4.0.
Remote views
GridLayout
and ViewStub
are now remotable views so you can use them in layouts for your
app widgets and notification custom layouts.
Font families
Android 4.1 adds several more variants of the Roboto font style for a total of 10 variants, and they're all usable by apps. Your apps now have access to the full set of both light and condensed variants.
The complete set of Roboto font variants available is:
- Regular
- Italic
- Bold
- Bold-italic
- Light
- Light-italic
- Condensed regular
- Condensed italic
- Condensed bold
- Condensed bold-italic
You can apply any one of these with the new fontFamily
attribute in combination with the textStyle
attribute.
Supported values for fontFamily
are:
"sans-serif"
for regular Roboto"sans-serif-light"
for Roboto Light"sans-serif-condensed"
for Roboto Condensed
You can then apply bold and/or italic with textStyle
values
"bold"
and "italic"
. You can apply both like so: android:textStyle="bold|italic"
.
You can also use Typeface.create()
.
For example, Typeface.create("sans-serif-light", Typeface.NORMAL)
.
Input Framework
Multiple input devices
The new InputManager
class allows you to query the
set of input devices current connected and register to be notified when a new device
is added, changed, or removed. This is particularly useful if you're building a game
that supports multiple players and you want to detect how many controllers are connected
and when there are changes to the number of controllers.
You can query all input devices connected by calling
getInputDeviceIds()
. This returns
an array of integers, each of which is an ID for a different input device. You can then call
getInputDevice()
to acquire
an InputDevice
for a specified input device ID.
If you want to be informed when new input devices are connected, changed, or disconnected,
implement the InputManager.InputDeviceListener
interface and
register it with registerInputDeviceListener()
.
Vibrate for input controllers
If connected input devices have their own vibrate capabilities, you can now control
the vibration of those devices using the existing Vibrator
APIs simply
by calling getVibrator()
on the InputDevice
.
Permissions
The following are new permissions:
READ_EXTERNAL_STORAGE
- Provides protected read access to external storage. In Android 4.1 by default all applications still have read access. This will be changed in a future release to require that applications explicitly request read access using this permission. If your application already requests write access, it will automatically get read access as well. There is a new developer option to turn on read access restriction, for developers to test their applications against how Android will behave in the future.
READ_USER_DICTIONARY
- Allows an application to read the user dictionary. This should only be required by an IME, or a dictionary editor like the Settings app.
READ_CALL_LOG
- Allows an application to read the system's call log that contains information about incoming and outgoing calls.
WRITE_CALL_LOG
- Allows an application to modify the system's call log stored on your phone
WRITE_USER_DICTIONARY
- Allows an application to write to the user's word dictionary.
Device Features
Android 4.1 includes a new feature declaration for devices that are dedicated
to displaying the user interface on a television screen: FEATURE_TELEVISION
. To declare that your app requires
a television interface, declare this feature in your manifest file with the <uses-feature>
element:
<manifest ... > <uses-feature android:name="android.hardware.type.television" android:required="true" /> ... </manifest>
This feature defines "television" to be a typical living room television experience: displayed on a big screen, where the user is sitting far away and the dominant form of input is be something like a d-pad, and generally not through touch or a mouse/pointer-device.


Ready to save some wallet space?
Use the form below to enter up to eight (8) barcodes for your loyalty cards. As you save the data, you can preview the output to double-check that the barcode type and format is as expected. It's important to compare this to the real barcode or it won't work when it's scanned later.
When finished...


Togo turns ex-colonial palace into flagship art centre
LOME (Togo), Nov 23 — Togo yesterday opened a flagship art centre in the former seat of colonial power after a multi-million dollar refurbishment aimed at making it a major cultural draw in West Africa.
Built over a century ago, the Palais de Lome was home to both French and German colonial rulers until becoming the residence of the Togolese presidency—but was abandoned in the early 1990’s.
Togo’s government commissioned architects in 2014 to renovate the palace, venerated as a treasured historic monument in the tiny West African nation, which is seeking to attract visitors and boost tourism.
“For the first time in its history, this place where power was exercised will be open to the general public so that they can discover its rich historical, cultural and environmental heritage,” the palace director, Sonia Lawson said.
The palace’s impressive architecture within an 11-hectare park, offers an array of tropical trees and over forty species of birds.
The palace “will serve as a place for exhibitions, shows, art galleries and restaurants,” Lawson said, exhibiting the works of artists and designers from Togo and across the continent. — AFP-Relaxnews


Ghost of Priest:
You must mean Lidia von Hellmann, she was the only survivor of the tragedy here.
"What tragedy?"


{{ui.contact.name}}
{{filterTip}}
Loading...
- {{contact.name}} !
No online contacts found with uProxy
{{ ui.user.name }} does not have uProxy.
Send


This section contains reference information related to the standard features of the Plato library.
In This Section
- Standard Library Overview
-
Presents an overview of the standard features of the library.
- Introduction to Elements
-
Presents an introduction to the building blocks of models.


--- layout: post title: Colorbar Peachy Rose Blush tags: - Colorbar status: publish type: post published: true meta: _edit_last: '2' wp_plus_one_redirect: '' _graphene_slider_img: global _graphene_slider_imgurl: '' _graphene_show_addthis: global al2fb_facebook_image_id: '2124' _aioseop_keywords: Colorbar Peachy Rose Blush _aioseop_title: Colorbar Peachy Rose Blush al2fb_facebook_link_id: '218440691518395_325993657429764' al2fb_facebook_link_time: '2011-12-17T14:57:07+00:00' al2fb_facebook_link_picture: meta=http://missenchanted.com/wp-content/uploads/2011/12/IMG_2669-150x150.jpg _yoast_wpseo_linkdex: '0' _thumbnail_id: '2125' --- I had been on a lookout for a peachy blush, since long and after reading a lot about Colorbar Peachy Rose I knew I wanted this... but it took me a long time to get my hands on this. Colorbar counter is removed from almost every place I know and one day I hit it at Bangalore Central, Price: Rs.300, its available at discount online Colorbar says: Available in five shades, Plum Brown, Cosmic Rose, Fuchsia, Peachy Rose and Just Earth, the Blusher accentuates the cheek area giving a glow to the face. This talc free, silky powder contains a moisture balance formula that is easy to blend and keeps the skin smooth, hydrated and nourished for soft cheeks with just the right hint of color. This is such a beautiful peachy shade with pink undertones and subtle glitter, What I love about it:


jsonschema2pojo uses the structural rules present in a JSON Schema document to generate DTO style Java classes.
| Attribute | Description | Required |
| source | The input JSON schema. | Yes |
| targetDirectory | The directory that generated .java source files will be saved to. | Yes |
| annotationStyle | The style of annotations to use in the generated Java types. Supported values:
|
No (default JACKSON2 ) |
| inclusionLevel | The level of inclusion to be set for generated java types (to control level of inclusion in
case of Jackson1 or Jackson2 serializator). Each level will have its own set of mapping annotations.
Supported values:
|
Default value NON_NULL ) |
| classNamePrefix | Whether to add a prefix to generated classes | No (default "" ) |
| classNameSuffix | Whether to add a suffix to generated classes | No (default "" ) |
| fileExtensions | A string containing file extensions that should be considered full extensions and therefore ignored when generating classnames. | No (default "" (none)) |
| classpath | Additional classpath to use. Any path elements provided here will be added to the classpath
when this task is invoked.
If a support for filesets/filelists/dirsets etc is required, this property can also be set as a nested element like: <jsonschema2pojo ... <classpath> <fileset dir="custom-libs"> <include name="**/*.jar" /> </fileset> </classpath> <jsonschema2pojo/> |
No |
| classpathRef | Additional classpath to use, given as a reference to a path defined elsewhere. Can be used in
conjuction with the classpath option (the result is the union of all paths).
|
No |
| customAnnotator |
A fully qualified class name, referring to a custom annotator class that implements If you want to use the custom annotator alone, set |
No |
| customRuleFactory |
A fully qualified class name, referring to a custom rule factory class that extends By specifying a custom implementation you can customize most aspects of code generation by returning custom instances of rules. |
No |
| generateBuilders | Whether to generate builder-style methods of the form withXxx(value) (that return
this ), alongside the standard, void-return setters.
|
No (default false ) |
| includeAccessors | Whether to include getters/setters or to omit these accessor methods and create public fields instead. | No (default true ) |
| includeGetters | Whether to include getters or to omit these accessor methods and create public fields instead. | No (default false ) |
| includeSetters | Whether to include setters or to omit these accessor methods and create public fields instead. | No (default false ) |
| includeAdditionalProperties | Whether to allow 'additional properties' support in objects. Setting this to false will disable additional properties support, regardless of the input schema(s). | No (default true ) |
| includeDynamicAccessors | Whether to include dynamic getters, setters, and builders or to omit these methods. | No (default false ) |
| includeDynamicGetters | Whether to include dynamic getters or to omit these methods. | No (default false ) |
| includeDynamicSetters | Whether to include dynamic setters or to omit these methods. | No (default false ) |
| includeDynamicBuilders | Whether to include dynamic builders or to omit these methods. | No (default false ) |
| includeConstructors | Whether to generate constructors for generated Java types | No (default false ) |
| constructorsRequiredPropertiesOnly | Whether generated constructors should have parameters for all properties, or only required ones. | No (default false ) |
| includeHashcodeAndEquals | Whether to use include hashCode and equals methods in generated Java
types.
|
No (default true ) |
| includeJsr303Annotations | Whether to include JSR-303/349 annotations
(for schema rules like minimum, maximum, etc) in generated Java types.
Schema rules and the annotation they produce:
@Valid to
support validation of an entire document tree.
|
No (default false ) |
| includeJsr305Annotations | Whether to include JSR-305 annotations (for
defect detection) in generated Java types.
Schema rules and the annotation they produce:
@NonNull added, and @Nullable on all
other fields.
|
No (default false ) |
| includeToString | Whether to use include a toString method in generated Java types. |
No (default true ) |
| toStringExcludes | A string containing fields to be excluded from toString generation. | No (default "" (none)) |
| initializeCollections | Whether to initialize Set and List fields as empty collections, or leave them as
null .
|
Yes (default true ) |
| outputEncoding | The character encoding that should be used when writing the generated Java source files. | No (default UTF-8 ) |
| parcelable | **EXPERIMENTAL** Whether to make the generated types 'parcelable' (for Android development). | No (default false ) |
| serializable | Whether to make the generated types 'serializable'. | No (default false ) |
| propertyWordDelimiters | A string containing any characters that should act as word delimiters when choosing Java bean property names. | No (default "- _" (hyphen, space, underscore)) |
| removeOldOutput | Whether to empty the target directory before generation occurs, to clear out all source files
that have been generated previously.
Be warned, when activated this option will cause jsonschema2pojo to indiscriminately delete the entire contents of the target directory (all files and folders) before it begins generating sources. |
No (default JSONSCHEMA ) |
| skip | Whether to skip type generation entirely (useful when set via a build property to allow quick disabling of this task using a command line property). | No (default false ) |
| sourceType | The type of input documents that will be read
Supported values:
|
No (default JSONSCHEMA ) |
| targetLanguage | The type of code that will be generated.
Supported values:
|
No |
| targetPackage | Package name used for generated Java classes (for types where a fully qualified name has not been supplied in the schema using the 'javaType' property). | No |
| useCommonsLang3 | Whether to use commons-lang 3.x imports instead of commons-lang 2.x imports when adding equals, hashCode and toString methods. | No (default false ) |
| useDoubleNumbers | Whether to use the java type double (or Double ) instead of float
(or Float ) when representing the JSON Schema type 'number'.
|
No (default true ) |
| useBigDecimals | Whether to use the java type BigDecimal instead of float (or java.lang.Float )
when representing the JSON Schema type 'number'. Note that this overrides useDoubleNumbers .
|
No (default false ) |
| useJodaDates | Whether to use org.joda.time.DateTime instead of java.util.Date when
adding date-time type fields to generated Java types.
|
No (default false ) |
| useJodaLocalDates | Whether to use org.joda.time.LocalDate instead of java.lang.String
when adding string fields with format date to generated Java types.
|
No (default false ) |
| useJodaLocalTimes | Whether to use org.joda.time.LocalTime instead of java.lang.String
when adding string fields with format time to generated Java types.
|
No (default false ) |
| useLongIntegers | Whether to use the java type long (or Long ) instead of
int (or Integer ) when representing the JSON Schema type 'integer'.
|
No (default false ) |
| useBigIntegers | Whether to use the java type BigInteger instead of int (or java.lang.Integer )
when representing the JSON Schema type 'integer'. Note that this overrides useLongIntegers .
|
No (default false ) |
| usePrimitives | Whether to use primitives (long , double , boolean )
instead of wrapper types where possible when generating bean properties (has the side-effect of making
those.
|
No (default false ) |
| targetVersion | The target version for generated source files. | No (default 1.6 ) |
| dateTimeType | The java type to use instead of java.util.Date when adding date-time type fields
to generated Java types.
|
No |
| dateType | The java type to use instead of java.lang.String when adding string fields with
format date to generated Java types.
|
No |
| timeType | The java type to use instead of java.lang.String when adding string fields with
format time to generated Java types.
|
No |
| formatDates | Whether the fields of type `date` are formatted during serialization with a default pattern of yyyy-MM-dd'T'HH:mm:ss.SSSZ. | No (default false ) |
| formatTimes | Whether the fields of type `time` are formatted during serialization with a default pattern of HH:mm:ss.SSS. | No (default false ) |
| formatDateTimes | Whether the fields of type `date` are formatted during serialization with a default pattern of yyyy-MM-dd'T'HH:mm:ss.SSSZ. | No (default false ) |
| customDatePattern | A custom pattern to use when formatting date fields during serialization. Requires support from your JSON binding library. | No (default none) |
| customTimePattern | A custom pattern to use when formatting time fields during serialization. Requires support from your JSON binding library. | No (default none) |
| customDateTimePattern | A custom pattern to use when formatting date fields during serialization. Requires support from your JSON binding library. | No (default none) |
| refFragmentPathDelimiters | A string containing any characters that should act as path delimiters when resolving $ref fragments. By default, #, / and . are used in an attempt to support JSON Pointer and JSON Path. | No (default #/. ) |
| sourceSortOrder | The sort order to be applied to the source files when being processed, by default the OS can
influence the ordering.
|
No (default OS ) |
<taskdef name="jsonschema2pojo" classname="org.jsonschema2pojo.ant.Jsonschema2PojoTask"> <classpath> <!-- classpath only required if jars have *NOT* been added to $ANT_HOME/lib --> <fileset dir="my-downloaded-libs"> <include name="**/*.jar" /> </fileset> </classpath> </taskdef> <target name="generate"> <jsonschema2pojo source="address.json" targetDirectory="build/generated-types" targetPackage="com.example"/> </target>
The above uses the taskdef task to make the jsonschema2pojo task available. The generate target invokes the jsonschema2pojo task to generate java classes based on an input schema called address.json.


--- layout: post title: Opening shot date: '2018-01-09T11:30:37+01:00' categories: - Storyboards - Sketchbooks picture_url: https://film-Storyboards.tumblr.com/post/169508836850/opening-shot ---


Any Given Sunday * * (out of * * * * )
Directed by Oliver Stone. Cast: Al Pacino, Jamie Foxx, Cameron Diaz, Dennis Quaid, James Woods, Aaron Eckhart, Ann-Margret, Matthew Modine, Lela Rochon, Lawrence Taylor, Lauren Holly, LL Cool J, John C. McGinley, James Karen, Elizabeth Berkley, Jim Brown, Charlton Heston. 1999 - 170 minutes Rated R (for profanity, nudity, and mild violence). Reviewed December 23, 1999.
Thus far, several reviews for "Any Given Sunday," Oliver Stone's fully charged ode to professional football, have stated that only those viewers who are fans of football will be able to enjoy it. Strange, then, that I think the exact opposite. Although I didn't like "Any Given Sunday" and I despise football, it is certainly one of the major pictures of its type that has a large chance to be enjoyed by several different sections of the adult population, whether they care for the sport or not. Stone does not dwell on the football-playing scenes and his rapid-fire editing is so quick that what is happening on the field is often nearly unintelligible. Taking a look at the politics that go on behind the lines, the picture is occasionally savvy and perceptive. But where it ultimately fails is in Stone's usual "everything-but-the-kitchen-sink" attitude. While this approach sometimes works to benefit one of his movies (1994's "Natural Born Killers"), it quickly grows tedious here, signaling not originality from the accomplished filmmaker, but clear pretentiousness.
A behind-the-scenes expose of a fictional team in the NFL, the Miami Sharks, Al Pacino headlines the marvelous, all-star cast as Tony D'Amato, the frustrated head coach of the team whose longtime career is beginning to crumble around him. For one, he is constantly disagreeing with the team's new manager, a determined young woman by the name of Christina Pagniacci (Cameron Diaz), who has recently acquired the team from her highly regarded father. Things fire up between the two when star quarterback Jack Rooney (Dennis Quaid) gets injured, and Christina wants him to be gotten rid of for good, and have talented hotshot rookie Willie Beaman (Jamie Foxx) take over. The Sharks are on a dismal losing streak and Christina, new to the profession, will stop at nothing to get positive results as the playoffs wind down, partially out of trying to please her deceased father, and also because she is quickly losing sight of the things that are most important in her life.
The no-holds-barred editing and cinematography, by Salvatore Totino, of "Any Given Sunday" wear out their welcome from the very first scene and the camera only intermittently stops long enough to capture a full scene. Striking and undoubtedly flashy, but also needlessly unnecessary, this style by Stone occasionally holds a purpose in his other films, but here, is only used to cover up what is basically a highly cliched and predictable sports movie. A 170-minute epic that could have been 120 minutes, the story is very thin, and there are so many characters that are so pointless to the story, they could easily have been cut completely out. Then there are other characters that do hold some sort of purpose, but screenwriters John Logan and Oliver Stone don't even appear to be making any attempt to develop and flesh them out, and their subplots are entirely dropped in midstream, not to be brought up again.
Consequently, the climactic big game is just about as conventional as they come, albeit with razzle-dazzle editing that makes each quarter of the game go by in two minutes each. If anything, those who aren't football fanatics can take ease in knowing Stone does not meddle on the actual game, much more preferring to center on what goes on after the action on the field is over. Entirely predictable from start to conclusion, only the final scene during the end credits divulges a surprising plot development.
If severely flawed on many levels (this is one of Oliver Stone's weakest films), the performances are the glue that keeps everything from fully self-destructing. Al Pacino is superior here than in the role he is currently getting more attention for, in Michael Mann's "The Insider," as he isn't playing a character quite as much like his usual persona.
Proving why I now firmly believe she is one of the most intelligent and talented actresses in their twenties, Cameron Diaz more than holds her own with Pacino in several head-on verbal battles with each other. As Christina Pagniacci, she is the type of woman who knows what she wants, but is still a little naive in her decisions, and it is the one character with an effective emotional arc. Diaz could have come off as a one-dimensional witch with a capital "B," but unlike the other throwaway roles, her's is the one that is most carefully handled.
In two wasted supporting turns, Lela Rochon and Elizabeth Berkley add much-needed flare and a human element into the story, as Willie's neglected girlfriend and a high-priced hooker that spends a night with Tony, respectively. Rochon is so likable and her character so nicely defined (under the circumstances) that it is a shame nothing more is done with her. Berkley, who has come a long way in her acting skills since her starring role in 1995's "Showgirls," is wonderfully charismatic and surprisingly involving, even in only two scenes.
All other actors are top-notch, as well, but sadly, are not given anything notable to do. Aaron Eckhart, Dennis Quaid, James Woods, Matthew Modine, Lauren Holly, Charlton Heston, even LL Cool J--they are all fine thespians who perform their roles just about as well as could possibly be expected, but are mostly headscratchers in the writing department.
"Any Given Sunday" is a fast-paced, entertaining drama that, little-by-little, grows problematic when you stop to think long enough about its specifics. Stone is an innovative director most of the time, but has hit a brick wall with his latest picture, trying to cover up its flaws with personal technical expertise and forgetting about the substance part of the equation. The problem is, the flash-cutting style of a Jerry Bruckheimer production (such as 1998's "Armageddon" and 1997's "Con Air") is something I have no patience for, and is especially distressing when you realize someone as intelligent in his craft as Stone has resorted to such desperate gimmickry.
- Copyright 1999 by Dustin Putman Http://www.young-hollywood.com Http://www.atnzone.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Planes Keeper
Logoff
Search by name:
Cards currently held
Login and Logoff View Page
New Username:
Log-in
Log-in
Log-in
Meet the developer team
Github
linkedin
Github
linkedin
Github
linkedin


The current Maya plug-in compiled for Maya version 6.5, 7.0, 8.0, and 8.5, for Windows only. It should also be possible to compile it from source for other platforms and versions, but no binaries for these been submitted so far. The plug-in enables the importing and exporting of NIF files, including skins bound to bones, but does not deal with animation, cameras, lights, LOD levels, particles, and other advanced features of the NIF format.
|
3D Package |
Import |
Export |
Textures |
Skin Deform |
Animation |
Lights |
Cameras |
Particles |
Oblivion Collision |
|
3ds Max |
Yes |
Yes |
Base & Glow |
Yes |
Yes |
Yes |
Yes |
No |
Export |
|
Blender |
Yes |
Yes |
Base & Glow |
Yes |
Yes |
No |
No |
No |
Export |
|
Maya |
Yes |
Yes |
Base & Glow |
Yes |
No |
No |
No |
No |
No |


Survival of transgenic mice (TG) expressing PBD-2 and wild-type (WT) mice after PRV infection ( n = 4 for each group). The mice were intraperitoneally injected of 0.2 mL of PRV (2 × 10 3.3 TCID 50/mL). This result represents three independent experiments with similar results


Hello ELC, the weather in Prague is
Temperature: {{.Temperature}} C
Humidity: {{.Humidity}} %
Last data reading: {{.LastReading}}


--- layout: page title: About header-img: "img/about-bg.png" ---
An aspiring coder who loves fashion, gaming, books, my fiance, and my pets.


Acknowledgements
- Claudio Procida — Design, development, testing (whew!), Italian and Spanish localization.
- Tjebbe Westendorp — Dutch localization, testing.
- Alain Raymond — French localization.
- Jørgen Tietze — Danish localization, semantic criticism.
- Tomoharu Nishino — Japanese localization.
- Patrick Simianer — German localization.
- Marcos Alves — Portuguese localization.
- Kirill Bystryakov — Russian localization.
- Bartłomiej Pater — Polish localization.
- Joakim Hansen — Norwegian localization.
- Bengt Randers — Swedish localization.
Thanks to (in no particular order):
Jos van Hoven, Andrew Robulack, César Pérez, Ken Ward, DeWayne A. Nelon, Saxon Unrue, Louis Mandelstam for their precious feedback.
My family and friends for continuously supporting me.
This software is Copyright © 2006-2008 Claudio Procida, Emeraldion Lodge.
Disclaimer
The MiniBatteryLogger software (from now, the “Software”) and the accompanying materials are provided “AS IS” without warranty of any kind. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR(S) HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The entire risk as to the results and performance of this software is assumed by you. If the software is defective, you, and not the author, assume the entire cost of all necessary servicing, repairs and corrections. If you do not agree to these terms and conditions, you may not install or use this software.
Third party software
Growl Framework by the Growl Team .
Sparkle Framework by Andy Matuschak .
AMPreferencePane Framework by Andreas Mayer .
CURLHandle Framework by Dan Wood .
Relaunch.app by Cédric Luthi .
This product includes cryptographic software written by Eric Young
Copyright (C) 1995-1998 Eric Young<EMAIL_ADDRESS>All rights reserved. This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL. This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com). Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.]


PoissonNTF - blind source separation of fluorescence microscopy data
Table of Contents
- Introduction
- Installation
- Data
- Workflow
- Spectra Library
- References
Back to the main page.
PoissonNTF is an extension of the PoissonNMF plugin for ImageJ.
In contrast to the NMF plugin, NTF combines the data from multiple
excitations. Multiple excitations allow to image and decompose more
fluorophores than single excitation imaging. As PoissonNMF, PoissonNTF
employs a non-negative factorization algorithm generalized to higher dimensional data sets
(Tensors) [1].
The details of the algorithm are discussed in [2].
Step-by-step tutorial using an example with 3 dyes can be
found here.
To install the plugin, copy the PoissonNTF_.jar file into the plugin folder of
your ImageJ distribution. PoissonNTF uses the same library of spectra as PoissonNMF,
see below.
For this feature to work, the spectra have to be saved in a folder named SpectraLibrary
at the top level of the plugins folder of the ImageJ distribution.
top
As of now, PoissonNTF works only for data acquired with Leica confocal microscopes (and has only
been tested for Leica SP2). The user is expected to choose one image from the experiment. The
plugin then reads the accompanying text file with the settings and builds stack of images for each
excitation. The channel and excitation wavelength are read from the
meta data in the Leica text file. It is important that the emission channels used in the different
excitations overlap and that the overlapping channels have exactly the same boundaries.
Example:
Excitation 1: 470-490nm, 490-510nm, 510-530nm, 530-550nm.
Excitation 2: 510-530nm, 530-550nm, 550-570nm, 580-610nm.
top
The workflow of Poisson NMF is very similar to PoissonNMF. Upon starting the plugin,
the user has to choose which kind of data he/she wants to analyze. Currently, only
Leica data is implemented. The user has to select one of the images of the experiment, and
the plugin will open all relevant images and group them into stacks according to excitation
wavelength. After opening of the images, the user is guided through a series of dialogs.
top
The first dialog presents the excitation wavelength found in the configuration file and
offers the choice which of them are to be used for further analysis.
Next, the user is asked for the number
of labels that contribute to the image stack. This number is restricted to the range
1-10.
top
After specifying the number of sources, the user is prompted for parameters
needed for preprocessing of the data, initial conditions and runtime options.
Number of iterations and subsampling.
To speed up convergence, the poissonNMF applies the update rules in several stages
to subsamples of the data. The estimates for the spectra obtained with one subsamble
are used as initial conditions for the next larger subsample. The number of such stages can be specified in
subsamples field. From one subsample to the next, the amount of data used by the algorithm
is increased by a factor of 10 in such a way that the last subsamples comprises the entire data set.
The total number of times the iterative update rules are applied to the data can also be specified.
The number of iterations for larger subsamples is smaller (a factor 2 between successive subsamples).
Segregation bias. The segregation bias is mainly indended for PoissonNMF with only one excitation.
It can, however, be used in an analogous manner in NTF and multiple excitation and is this option
is therefore retained in PoissonNTF. We did not test this feature in detail.
As for NMF, the segregation bias should counteract the tendency of the algorithm to estimate
too narrow spectra by penalizing the overlap of the estimated label distributions.
Suitable weights of the segregation bias are of order 1. Too high segregation bias will
yield in a faulty decomposition. To turn off the segregation bias, set its weight to zero.
Saturation threshold.
Saturated or nearly saturated pixels have
distorted emission spectra and therefore have to be excluded from the
analysis. If the signal in any channel at a certain pixel is above this
parameter value, the pixel is excluded.
Background threshold.
Very faint pixels carry little information
and are likely dominated by noise, autofluorescence or similar contaminants. It is
therefore advisable to limit the spectra estimation to reasonably strong
pixels. Any pixel, whose intensity is below this threshold in every channel is therefore excluded.
This thresholding is applied after the constant background is substracted.
Background spectrum and initial spectra.
Before the algorithms can process the data, the background spectrum has
to be substracted and spectra initialized with a set of start spectra.
Both, background and spectra can be specified in a variety of ways, that can be selected
from a pull-down menu. The choices for the background are:
- Minimal values: the minimum across the image is determined for each channel.
- ROI selection: the user is prompted for a ROI
which contains background signal only.
- Manually: the user is prompted for the background strength in each channel
- Flat: the user prompted for one number, which is assumed to describe the background in all channels.
Similar choices are available for the initial spectra:
- Gaussian: The spectrum are initialized with a Gaussian with predefined width and position.
- ROI selection: the user is prompted for a ROI
which contains predominantly the corresponding dye.
- Manually: the user is prompted for the emission spectrum
- Library spectrum: If the spectra library is set up correctly and contains spectra, these spectra
are available at the bottom of the pull down menu.
If the user selected items that require further user input such as ROIs or numbers,
additional dialogs will appear after closing the parameter dialog.
Keep spectra fixed?
If some spectra are known accurately, one can fix them during the optimization and
iterate only the remaining spectra. To keep the spectrum of a dye fixed, check
the appropriate boxe. If all
dyes are kept fixed, poissonNTF updates only the concentrations and thereby produces a non-negative
iterative linear unmixing of the signal. This unmixing differs from standard least squares
unmixing by assuming Poisson noise.
Specify spectral channels?
PoissonNTF does not need to know the boundaries of the spectral channels for the core
optimization. It does, however, rely on this information to display the spectra
and read spectra from the spectra library. If this option is checked, the user will
be prompted for a dialog where the channel boundaries can be entered.
top
After closing the parameter dialog and providing the optional input, the plugin
can decomposes the image stack. While the plugin is running, it continuously displays
the current excitation and emission spectra and the progress of the calculation in ImageJ toolbar. The
plugin can be cancelled at any time. Furthermore, the current spectra can be used
to produce a least square solution of the entire stack.
Once poissonNTF has completed the optimization loop, it displays an image stack
containing the label distributions. Different labels correspond to different values of
the third dimensions, with all other dimensions being the same as the input data stack.
PoissonNTF opens a dialog with six buttons for further processing of the results.
The button RGB overlay allows to produce a RGB of the current slice of the stack. The user
is asked for an assignment of dyes to color channels.
The button background map presents the user a RGB image of the current slice, pixels
classified as background are blue, those used for poissonNTF are green and saturated
pixels are red. Furthermore, the user can save the estimated spectra and display the
background spectrum.
top
PoissonNTF can use literature spectra or spectra determined in previous
runs, for example as start spectra or as fixed spectra while
optimizing other unknown spectra. For a spectrum to be available in PoissonNTF,
it has to be placed in the folder SpectraLibrary located in the
plugins folder of ImageJ. The files are assumed to be text files with the
wavelength in column one and the emission in column two, conform with the
output format of PoissonNTF. Files containing emission spectra have to end on .emn.
top
References
- A Shashua, T Hazan. Non-negative tensor factorization with applications to statistics and computer vision. 2005
- R.A. Neher, M. Mitkovski, F. Kirchhoff, E. Neher, F.J. Theis, and A. Zeug. Blind source separation techniques for the decomposition of multiply labeled fluorescence images. Biophysical Journal, vol. 96 (9) pp. 3791-800, 2009.
top


Water My Plants
About Us
Sign Up
Already Have An Account
Login
New To Plants? Discover Features On Our Application To Help You Get Started


Surely is an app that allows sequential issuing of numbers and random drawing of issued numbers. It is best used for raffles, drawings, and lotteries.
JavaScript must be enabled to use the app.


SIDEKICKS A film review by James Berardinelli Copyright 1993 James Berardinelli
Rating: 4.6 (D, *1/2)
Date Released: 4/30/93 Running Length: 1:41 Rated: PG (Cartoonish violence)
Starring: Jonathan Brandis, Beau Bridges, Joe Piscopo, Mako, Julia Nicholson-Soul, Danica McKellar, Richard Moll, Chuck Norris Director: Aaron Norris Producer: Don Carmody Screenplay: Donald G. Thompson and Lou Illar Music: Alan Silvestri Released by Triumph Releasing Corporation
Barry (Jonathan Brandis) is an asthmatic kid who lives his life through a dream world where he fights alongside Chuck Norris to rescue damsels in distress and defeat the forces of evil. In reality, Barry is so feeble that even the task of climbing a rope in gym class is daunting. With the exception of Lauren (Danica McKellar), all the kids in school make fun of him, pushing him around and bullying him as the mood suits them. In an attempt to learn how to defend himself, Barry decides to take Karate lessons. The first teacher he visits, a demanding creep named Stone (Joe Piscopo), laughs him out of his studio. His second choice, however, a man named Mr. Lee (Mako), agrees not only to teach Barry the moves, but the philosophy as well.
Subtle manipulation can sometimes make a good movie better. Overt, obvious manipulation is guaranteed to sink any endeavor. SIDEKICKS is such an example. This film goes out of its way to make the villains as nasty as possible, while lauding the assets of the heroes. Everything builds to a climax where good faces evil. Guess who wins. If you can't, maybe SIDEKICKS is your kind of picture.
I'll give the movie a little credit--it's not afraid to have some fun at its own expense. Joe Piscopo is so over-the-top that his performance has to be intended by the director. No one could possibly be this bad without someone coaching them to be...could they? There are a few humorous moments during the course of the film's one-hundred minute running time, only I'm not sure whether or not I was supposed to laugh when I did.
Often a sports-related movie will work because of a likable character, a believable script, or a strong performance. SIDEKICKS has none of these assets, so the final contest at the end is uninteresting. At least in a film like GLADIATOR (the first of many that pops into mind), while there's never any doubt who the winner will be, at least we care about the victory. In SIDEKICKS, it doesn't matter. None of the characters have enough depth for it to.
Characterization is brutal. Everyone is a stereotype, from the sage instructor to the cute girlfriend. The kids in school are all representative of the worst in an American teenager. Sure, people are often cruel to misfits, but they're nothing like what's represented here. There isn't one character in this film that I could accept as a real person. The poor quality of the acting doesn't help, but it's outdone by an embarrassing script.
Certainly some of this movie was lifted from THE KARATE KID (to be nice, I avoid the word "stolen"). Mr. Lee's sermons have a familiar sound, but they ring false in this story. THE KARATE KID had a lot more going for it than SIDEKICKS could ever hope for.
Most of the action in the film is provided by a series of dream sequences that have Chuck Norris and Barry shooting their way through various scenarios. Despite all the bullets and explosions, no one seems to get seriously injured. This is another case of live cartoon violence, and I'm of the opinion that it's not a good thing. In the real world, when shots are fired, people get injured. Not so in SIDEKICKS (and a number of other recent films). Here, death doesn't seem to be a reality.
For those that like to laugh at bad movies, this may be one to put on your list (preferably for video watching). It isn't dull, so it can be endured, but anyone who wants to take SIDEKICKS seriously is likely to be in for a major disappointment. This film is about as lame as a movie gets without being downright repulsive.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: tweet ---
3 ?- programmingprolog(X).X = jason.4 ?-
1/9/2011, 2:22:21 PM
Favs: 0
Retweets: 0


Cl-Font
Quote as Font-class
Font-class is one kind of derived usage of Unicode, which solved the problems of intuitive writing and semantic ambiguity
Compared with Unicode, its characteristics as following:
- Good compatibility, it supports IE 8+ and all usual browsers.
- When you want to change one icon, you just need to alter the quote of Unicode in class, because it define icons by “class”.
- But its one kind of font essentially, it can not support multi-color icon as well.
Usage:
Step 1: Include the css of iconfont
<link rel="stylesheet" type="text/css" href="./iconfont.css">
Step 2: Copy the individual code of icon into pages
<i class="iconfont icon-xxx"></i>
-
support.icon-support
-
home.icon-home
-
ticket.icon-ticket
-
money.icon-money
-
praise.icon-praise
-
setting.icon-setting


OK
ERROR
Network
{{quality}}
The access point could be out of range or powered off.
{{ip}}
No defaultroute entry. Double-check the wifi key and the router's DHCP settings.
No defaultroute entry. Check the DHCP settings on the router.
{{ping}}
Cannot reach the Flukso server. Is the internet uplink live?


Speech
Ofsted's Chief Inspector, Sir Michael Wilshaw, spoke at the Baker Dearing UTC annual conference in central London
Good morning everyone and thank you for inviting me to speak at your conference.
What amazing times we live in.
It is hard to believe that the EU Referendum vote took place just 4 short weeks ago today. There won’t be many here in this room who can remember living through such tumultuous times before. I, for one, certainly cannot.
The momentous decision our country reached on 23 June has upturned so many old certainties and transformed the terms of our national debates almost overnight. And as the shock waves continue to reverberate, few would doubt that one of the critical questions we face will be how we equip our young people with the skills the UK needs to survive and prosper in a post-Brexit world.
Of course, we don’t yet know exactly how Theresa May will approach the forthcoming negotiations over access to the single market and the free movement of labour.
But as much as anything can be certain, businesses here will surely have to learn to rely less on imported workers from Eastern Europe and elsewhere to plug existing skills gaps and much more on the home-grown population.
A previous Prime Minister, Tony Blair, in another context, famously described how the kaleidoscope had been shaken and how the pieces, currently in flux, would soon settle. You could just as easily apply this analogy to describe the opportunity that now suddenly presents itself to re-order our technical and vocational education system in a truly radical way.
As I enter my final few months as Her Majesty’s Chief Inspector, I will be urging the new government to seize this opportunity with both hands.
The main reason I am here today is because I believe university technical colleges have a pivotal role to play in raising both the status and the quality of technical education in this country.
Those who have been paying attention will know this has been one of the principal themes of my tenure and an issue I have returned to time and again.
For far too long, we have let down millions of young people and allowed their talents to go to waste because we have not given the non-academic pathway into employment the priority it deserves.
Let me be clear. I believe the government’s ambition to raise the academic achievement of our young people and to put many more of them through the English Baccalaureate in future years is a laudable one. But having taught in disadvantaged communities for most of my professional life, I also recognise that there will always be some children who will respond better to a technical curriculum than a purely academic one. Even when I was head at Mossbourne Academy in Hackney, which had a great academic reputation, 20% of students always failed to reach our targets.
The consequences of an inflexible curriculum are plain to see. We see it in the demotivated youngsters who leave school with few relevant qualifications and an antipathy to learning. We see it in the ranks of the unskilled unemployed.
As I have argued in the past, the problem in many ways is as much attitudinal as it is educational. Vocational training in this country does not have the esteem and status that it should have.
The education systems of a good number of our international competitors are more flexible than ours and are much more geared towards aligning the potential of the student with the needs of their economies. As a result, countries like Germany, Norway and Switzerland, which have excellent technical routes as well as academic ones, have far lower rates of youth unemployment than we do.
While our system has become increasingly adept at guiding young people into higher education, it continues to struggle, despite the recent focus on apprenticeships, to inform them about alternatives to university.
Report after report finds that careers guidance in both schools and colleges is uniformly weak, while the way we prepare young people for the world of work remains poor.
My candid assessment earlier this year of the state of 16 to 19 education in England drew furious response and landed me in all sorts of trouble with the further education ( FE ) sector.
My remarks arose from my exasperation with the status quo and the glacial pace of change. They reflected my concern that too many general further education ( GFE ) colleges are still packing their curriculum with low-quality courses that fail to match the skills gaps in their local and national labour market. And they betrayed my frustration with the fact that so many young people who failed to reach the grade in maths and English at 16 still haven’t got these key qualifications 2 years later.
Although there are some excellent GFE institutions, such as Truro and Penwith, Runshaw and Blackpool and the Fylde College, nearly half of the 71 GFE colleges inspected by Ofsted this academic year have been judged to be less than good - including 10 colleges that were inadequate.
This is an alarming rate of underperformance and failure, especially when we remember that the majority of 16 to 19-year-olds are educated in the FE sector.
Right across the country, we find colleges that simply aren’t delivering what’s needed. In too many cases, inspectors are coming across weak provision, characterised by poor outcomes for learners and apprentices, high drop-out rates and sub-standard work experience placements that fail to develop students’ industry-specific skills.
Earlier this year, I highlighted how in 2 of the West Midlands’ largest colleges, less than 10% of the combined population of nearly 30,000 students were on apprenticeship courses. Far too few learners in these institutions were progressing into an apprenticeship or into skilled employment. This in a region where 9 in 10 manufacturing firms said they were experiencing significant recruitment difficulties. This picture of businesses suffering acute skills shortages is mirrored across all regions and in many different sectors, as the Confederation of British Industry ( CBI ) reported only this week.
In the UK, there are 210,000 vacancies across the economy – an increase of 43% from just 3 years ago. These vacancies remain unfilled because candidates lack the necessary skills that employers are desperately looking for.
As John Cridland remarked a few months ago when stepping down as head of the CBI , it is the ‘Achilles heel’ of economic growth. The problems of poor productivity and skills shortages, he suggested, originate in the classroom, not the workplace.
I am willing to bet there are few people in this room today who would gainsay this view?
Indeed, the growth of the university technical college ( UTC ) movement is a response to the long-standing failure to improve the poor quality of technical provision in schools and colleges – just as the academy movement was a response to the systemic failure of local authorities to raise standards.
This is hardly a new problem we are grappling with. More than 50 years have now passed since John Newsom warned in his seminal report ‘Half our future’, that this country was failing half its young people. Half a century on, what has changed?
At this juncture, it is right to acknowledge the ambitious steps the government has taken in very recent years to increase both the number and the quality of apprenticeships.
The proposed measures to transform post-16 technical education, set out earlier this month by the now departed Skills Minister in response to the Sainsbury recommendations, are also very welcome.
However, it is vital that we do everything in our power to prevent this proving yet another false dawn. We are all too aware that the gap between the good intentions of successive administrations and the reality of what is happening on the ground remains a yawning one.
In a speech at the start of this year, I said it was a moral imperative as well as an economic one that we embark on a radical change of direction. If that were true 6 months ago, it is even more so now given the events of the past few weeks.
It is fair to say I have ruffled a few ministerial feathers in the last couple of years by saying there should be more opportunity at 14 for pupils to follow a strong technical pathway without abandoning the essential core curriculum.
But it’s a view I hold on to firmly. And that is where you come in.
I have argued that every medium or large multi-academy trust or federation should contain a UTC . Such an arrangement would enable young people to transfer across institutions in the cluster to follow a route into high-level academic or vocational study. Pupils on either path would be free to access the specialist teaching available in the other and would not be stuck in one route.
Ofsted would be there to ensure that the UTC did not become a dumping ground for the difficult or disaffected and that it delivered high quality pre-apprenticeship programmes to the age of 19.
So if that’s the vision, what do we need to do to make it a reality?
How do we encourage more strongly performing trusts to buy into this approach and to get more actively involved?
How do we tackle the problem of low enrolment numbers across the UTC network and achieve a better gender balance?
How do we persuade many more teenagers – boys and girls – that leaving behind their friends and support networks at the age of 14 to move into an unfamiliar environment is a step worth taking for their future?
How do we get parents onside?
The answer to these questions, of course, lies in demonstrating that UTCs are capable of delivering a consistently high standard of education. As we all know, the experience to date is that this consistency has been missing. The UTC performance track-record is patchy.
To date, Ofsted has inspected 15 out of the 39 UTCs currently operating. One of these – Reading – was judged outstanding, 7 were good, 5 required improvement and 2 were inadequate.
You need to be doing significantly better than this, particularly because, unlike GFE colleges, you largely focus on one vocational or technical specialist area. If the UTC movement is to survive and prosper, then radical improvement is necessary. If this doesn’t happen, politicians will come to the conclusion that the model is flawed and not worthy of further political or financial support.
Where providers have been judged less than good to date, inspectors have found a number of common weaknesses:
I know there are people in this audience who think Ofsted has been too hard on some of the institutions we have inspected, especially during the first wave. There is a feeling that Her Majesty’s Inspectors have simply failed to properly get to grips with the fact that UTCs are organised differently from other schools and have different objectives and priorities for their students. Some of you have even suggested UTCs should be inspected under their own, separate framework.
Let me say that I understand these concerns and have discussed them at length with colleagues in Ofsted. So today I want to give you the reassurance that inspectors do recognise the unique context in which UTCs are operating – and they will continue to do so.
We do not expect you to conform to a particular type or fit into an educational straitjacket that doesn’t take account of your distinctive purpose and mission.
While we inspect UTCs under the same common inspection framework that we have used to inspect schools, FE colleges and early years settings since last September, this does not mean we take a one-size-fits-all approach to how we grade them. For every type of provider inspected under the common framework, we pay attention to the most pertinent aspects of the framework and the inspection handbook when reaching judgements on the leadership and management, on the teaching, learning and assessment and on outcomes.
Our UTC inspections are always led by a schools HMI . From the start of next term, we are rolling out a bespoke UTC training package for these lead inspectors, with a particular focus on the leadership of the curriculum and careers guidance. Furthermore, our UTC inspection teams will continue to include a further education and skills inspector, whose background and expertise will match as closely as possible the particular specialism of the institution.
So yes, we do take account of the context in which you are operating and the reason you were set up in the first place. But that doesn’t mean we will soft pedal or pull our punches where standards fall short. To do so would, in my view and I hope in yours too, be doing the UTC movement a grave disservice.
After all, we know that under our inspection framework, it is possible for a UTC to receive a report just as glowing as any other type of school because we have seen it happen already.
Indeed, just as we have found some common weaknesses in under-performing UTCs , those we have judged to be good or outstanding have tended to share many similar strengths and characteristics, including:
It is really important that in all UTCs , leaders inject rigour in everything that they do. They should insist on pupils being punctual, smartly dressed and ready to learn. They should focus relentlessly on fostering a culture of respect and order in the classrooms and corridors.
They need to understand that employers are looking for young people who not only have the right technical skills and knowledge but have also been taught the required attitudes and behaviours needed to succeed in the work place.
Crucially too, they should understand that it is right that they are held to account for providing a strong core curriculum. They need to know that for every young person in their charge, a sound grasp of English and maths will be the bedrock for all future study, training and employment.
As the manager of the Birmingham Electrical Training company told me on a visit last year: “I’m not interested in apprentices who don’t have good literacy and numeracy skills, because so much of what they have to do demands good communication and on the job calculations.”
To use that time-worn cliché, this is not rocket science. Although following Tim Peake’s recent exploits, I look forward to a new UTC specialising in this subject before too long.
These are the aspects against which all your institutions will be judged when Ofsted comes to inspect you – including the 18 planned UTCs due to open by the end of 2018. Get these right and the students will come. You will soon start to forge a good reputation in your area and help the wider movement into the bargain.
As a nation we are at a crossroads. As I said at the outset, our future success and prosperity depends on us turning out many more confident and properly educated young people, who are work ready and have the technical, literacy, numeracy and personal skills that our industries need.
Now is the time for UTCs to take up the challenge and to cement their place in our educational landscape.
For my part, I will continue to champion your cause, both in the time I have left in this post and after I step down in December.
I wish you all the very best. Thank you for listening.


|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Interface Summary | |
|---|---|
| Stringable | The Stringable defines an interface for creating a string. |
| StringFactory | A StringFactory defines an interface for
creating a string. |
| Class Summary | |
|---|---|
| Concat | The Concat class implements a StringFactory . |
| ConcatAssembler | |
| ConvertDate | The ConvertDate class implements the StringFactory interface. |
| ConvertDateAssembler | A ConvertDateAssembler is an assembler for assembling ConvertDate objects. |
| ConvertToDateTime | The ConvertDate class implements the StringFactory interface. |
| ConvertToDateTimeAssembler | Implements a ConvertToDateTimeAssembler for assembling ConvertToDateTime objects. |
| CreateDate | The CreateDate class implements the StringFactory interface. |
| CreateDateAssembler | Implements a CreateDateAssembler for assembling CreateDate objects. |
| CurrentDate | The CurrentDate class implements the StringFactory interface. |
| CurrentDateAssembler | Implements a CurrentTimeAssembler for assembling CurrentDate objects. |
| CurrentDateTime | The CurrentDateTime class implements the StringFactory interface. |
| CurrentDateTimeAssembler | Implements a CurrentTimeAssembler for assembling CurrentDateTime objects. |
| CurrentTime | The CurrentTime class implements the StringFactory interface. |
| CurrentTimeAssembler | Implements a CurrentTimeAssembler for assembling CurrentTime objects. |
| EscapeMarkupAssembler | |
| EscapeSubstitutionVariablesAssembler | The EscapeSubstitutionVariablesAssembler implements an assembler for
assembling EscapeSubstitutionVariables objects. |
| FormatDateTime | The FormatDateTime class implements the Stringable interface. |
| FormatDateTimeAssembler | Implements a FormatDateTimeAssembler for assembling ConvertToDateTime objects. |
| LineNumber | The LineNumber class implements the StringFactory interface. |
| LineNumberAssembler | Implements a CurrentTimeAssembler for assembling CurrentDateTime objects. |
| MultipleStringValueEvaluator | The MultipleStringValueEvaluator class implements a ValueEvaluator . |
| PreserveMarkupAssembler | |
| Stringable.EmptyStringable | |
| StringableCompiler | The StringableCompiler implements a factory for
creating StringEvaluator objects. |
| StringEvaluator | The StringEvaluator implements a factory for
creating system SqlStatement objects. |
| StringFactory.UninitializedStringFactory | |
| StringFactoryCompiler | A StringFactory defines an interface for
creating a string. |
| StringLiteralFactory | The StringLiteralFactory class implements a StringFactory. |
| StringValueEvaluator | The StringValueEvaluator class implements a ValueEvaluator . |
| ToString | The ToString class defines an implements a
StringFactory . |
| ToStringAssembler | |
| ToXmlDate | The ConvertDate class implements the StringFactory interface. |
| ToXmlDateAssembler | Implements a ConvertToDateTimeAssembler for assembling ConvertToDateTime objects. |
| ToXmlDateTime | The ConvertDate class implements the StringFactory interface. |
| ToXmlDateTimeAssembler | Implements a ConvertToDateTimeAssembler for assembling ConvertToDateTime objects. |
| ToXmlTime | The ConvertDate class implements the StringFactory interface. |
| ToXmlTimeAssembler | Implements a ConvertToDateTimeAssembler for assembling ConvertToDateTime objects. |
Provides classes that implement the sx:stringable based components.
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Student. Rower. Coder.
(In development)
Current Sophomore at Harriton High School
active rower
active coder


UICollectionViewCarouselLayout
open class UICollectionViewCarouselLayout : UICollectionViewFlowLayout
A Custom UICollectionViewFlowLayout
that simulates a carousel. That is a paginated collection view, with the focused item only in the center of the collection.
In addition UICollectionViewCarouselLayout
offers the possibility to resize the non focused cells and change their alpha while scrolling.
For the proper functioning of this flow layout, collection view’s decelerationRate
should be set to fast.
For the proper functioning of UICollectionViewCarouselLayout
you are required to set the item size, either using the convenience init(itemSize: CGSize)
or by manually calling layout.itemSize
and setting its value.
Using func collectionView(_: UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize
will not work
Because a concrete fixed item size is needed to be able to calculate the various insets.
-
The lowest absolute velocity that should invoke a change of cells. If the absolute velocity of the swipe is lower than this variable, the central cell does not change. Defaults to
0.2
.Declaration
Swift
public var lowestVelocitySensitivity: CGFloat
-
The cell currently being displayed for the user.
Declaration
Swift
public internal(set) var currentVisibleCellIndex: CellIndex { get set }
-
The scale factor to apply to the focused cell’ size. Defaults to
1.0
. The size of the item will be multiplied by this value, so a value lower than 1 will make it smaller, greater than 1 will make it bigger.Declaration
Swift
public var focusedItemScaleFactor: CGFloat { get set }
-
The alpha value of the lone focused cell. This defaults to
1.0
.Declaration
Swift
public var focusedItemAlphaValue: CGFloat { get set }
-
The scale factor to apply to the non focused cells’ size. Defaults to
0.8
. The size of the item will be multiplied by this value, so a value lower than 1 will make it smaller, greater than 1 will make it bigger.Declaration
Swift
public var nonFocusedItemsScaleFactor: CGFloat { get set }
-
The alpha value of the non focused cells. This defaults to
0.5
.Declaration
Swift
public var nonFocusedItemsAlphaValue: CGFloat { get set }
-
The current content offset of the visible cell from the section inset..
Declaration
Swift
public var currentOffset: CGFloat { get }
-
The
CGSize
of the single item inside the cell. It’s value should be less or equal toUIScreen.main.bounds.size.width
.Declaration
Swift
open override var itemSize: CGSize { get set }
-
The
UICollectionView.ScrollDirection
of the collection. This value, defaults to.horizontal
and should NOT be changed.Declaration
Swift
open override var scrollDirection: UICollectionView.ScrollDirection { get set }
-
Initializes the flow layout with a
.horizontal
scroll direction.Declaration
Swift
public override init()
-
Initializes the flow layout with a
.horizontal
scroll direction, and sets theitemSize
of the single element.Declaration
Swift
public convenience init(itemSize: CGSize)
-
Initializes the flow layout with a
.horizontal
scroll direction using theNSCoder
.Declaration
Swift
required public init?(coder: NSCoder)
-
Invalidates the current layout and triggers a layout update.
You can call this method at any time to update the layout information. This method invalidates the layout of the collection view itself and returns right away. Thus, you can call this method multiple times from the same block of code without triggering multiple layout updates. The actual layout update occurs during the next view layout update cycle. If you override this method, you must call super at some point in your implementation.
Declaration
Swift
open override func invalidateLayout()
-
Returns the layout attributes for all of the cells and views in the specified rectangle.
Subclasses must override this method and use it to return layout information for all items whose view intersects the specified rectangle. Your implementation should return attributes for all visual elements, including cells, supplementary views, and decoration views. When creating the layout attributes, always create an attributes object that represents the correct element type (cell, supplementary, or decoration). The collection view differentiates between attributes for each type and uses that information to make decisions about which views to create and how to manage them.
Declaration
Swift
open override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?
Parameters
rect
The rectangle (specified in the collection view’s coordinate system) containing the target views.
Return Value
An array of UICollectionViewLayoutAttributes objects representing the layout information for the cells and views. The default implementation returns nil.
-
Asks the layout object if the new bounds require a layout update.
The default implementation of this method returns false. Subclasses can override it and return an appropriate value based on whether changes in the bounds of the collection view require changes to the layout of cells and supplementary views. If the bounds of the collection view change and this method returns true, the collection view invalidates the layout by calling the invalidateLayout(with:) method.
Declaration
Swift
open override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool
Parameters
newBounds
The new bounds of the collection view.
Return Value
true if the collection view requires a layout update or false if the layout does not need to change.
-
Updates the current layout if collection view size have changed.
This is needed, because for some weird iOS reason, when subclassing a
UICollectionView
,func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool
is never called. If this class is overridden, super should be called.Declaration
Swift
open override func prepare()
-
Returns the point at which to stop scrolling.
If you want the scrolling behaviour to snap to specific boundaries, you can override this method and use it to change the point at which to stop. For example, you might use this method to always stop scrolling on a boundary between items, as opposed to stopping in the middle of an item. If you override this method, you should call super which would return the expected point where to scroll to have the next centered cell.
Declaration
Swift
open override func targetContentOffset( forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint ) -> CGPoint
Parameters
proposedContentOffset
The proposed point (in the collection view’s content view) at which to stop scrolling. This is the value at which scrolling would naturally stop if no adjustments were made. The point reflects the upper-left corner of the visible content.
velocity
The current scrolling velocity along both the horizontal and vertical axes. This value is measured in points per second.
Return Value
The point where to stop in order to have the next cell centralised.