Texture Compression with Texture Package
The rule :
DEFAULT CONFIGURATION FOR SCENE
CANVAS SCALER
- SCREEN SPACE – OVERLAY
- SCALE WITH SCREEN SIZE
- 1536X2048
- MATCH WIDTH OR HEIGHT
- MATCH=1
- REFERENCE PPU=1
CAMERA
- SIZE=1024
IMAGE
- PPU=1
EQUATION
PIXELS PER UNIT =(VERTICAL/(ORTHOGRAPHIC SIZE*2))
Configuration should be:
Sprite Renderer :
Glow : 32bit
No Glow : Compress ETC 8bit
Canvas :
Glow : 32bit
No Glow : Compress ETC 8bit
The idea:
We need to use 2 collection views in 1 view controller. First collection view has no header and the second has a header.
So we need to register header(nib) for the second collection view controller only.
By calling this code:
But the app crash after the above method invoke:
How you fix it?
Issues come from thie method below that set the header’s size for collection view:
(CGSize)collectionView:(UICollectionView *)collectionView layout: (UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
It will call the method below for providing header to all collection view:
(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
Note: our first collection don’t register the header class but the method invoke for providing header for the first collection view too.
You can fix it by providing the header’s size of the first collection view with size 0.
Example:
Change language in application
A usefull snippet if you want to change the locale of the app without having to go through the settings.
Configuration conf = getResources().getConfiguration(); conf.locale = new Locale(iso3SupportLanguage[position]); DisplayMetrics metrics = new DisplayMetrics(); WindowManager wm = (WindowManager) getActivity().getSystemService(Activity.WINDOW_SERVICE); wm.getDefaultDisplay().getMetrics(metrics); getResources().updateConfiguration(conf, metrics); Resources resources = new Resources(getActivity().getAssets(), metrics, conf); resources.updateConfiguration(conf, metrics);
There is no native FlowLayout component, so for people. The following library gives a hand, but changing the space between category can be tricky, so we made it as default to get things done.
Take a look if you are interested:
What is the problem?
Slow to build the app if the app is multi-dex (over 65K method). And the build time is taking more than 1mn.
What’s the solution?
We can configure to make build multi-dex faster. Your device just need to have Android Lollipop or up.
Configure gradle like below
android { productFlavors { // Define separate dev and prod product flavors. dev { // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin // to pre-dex each module and produce an APK that can be tested on // Android Lollipop without time consuming dex merging processes. minSdkVersion 21 } prod { // The actual minSdkVersion for the application. minSdkVersion 14 } } ... buildTypes { release { runProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile 'com.android.support:multidex:1.0.0' }
When building, select devDebug in Build variant
More detailed stuff from here: https://developer.android.com/studio/build/multidex.html