miércoles, 22 de abril de 2015

Android: Card-like background with shadow


<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape>
            <corners android:radius="2dp" />
            <solid android:color="#60CCCCCC" />
            <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <corners android:radius="2dp" />
            <corners android:radius="2dp" />
            <solid android:color="#70CCCCCC" />
            <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <corners android:radius="2dp" />
            <solid android:color="#80CCCCCC" />
            <padding android:top="0dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <corners android:radius="2dp" />
            <solid android:color="#90CCCCCC" />
            <padding android:top="0dp" android:right="0dp" android:bottom="1dp" android:left="0dp" />
        </shape>
    </item>

    <item>
        <shape>
            <corners android:radius="2dp" />
            <solid android:color="#AACCCCCC" />
            <padding android:top="0dp" android:right="0dp" android:bottom="1dp" android:left="0dp" />
        </shape>
    </item>

    <!-- content background -->
    <item>
        <shape >
            <corners android:radius="2dp" />
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
</layer-list>

martes, 21 de abril de 2015

Android: Downsample image

private static Bitmap getImageFromInternalStorage(Context context, String string, int widthDp,
            int heightdp) {

        if (string == null) {
            return BitmapFactory.decodeResource(context.getResources(),
                    R.drawable.image_placeholder);
        }

        File file = context.getFileStreamPath(string);

        BitmapFactory.Options originalImageOptions = new BitmapFactory.Options();
        originalImageOptions.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(file.getAbsolutePath(), originalImageOptions);

        int requiredWidth = convertToPx(widthDp) * 2;  // 1
        int requiredHeight = convertToPx(heightdp) * 2; // 1
        int sampleSize = Math.max(originalImageOptions.outWidth / requiredWidth, originalImageOptions.outHeight / requiredHeight);

        BitmapFactory.Options outputImageOptions = new BitmapFactory.Options();
        outputImageOptions.inSampleSize = Math.max(sampleSize, 1);
        Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), outputImageOptions);

        if (bitmap == null) {
            bitmap = BitmapFactory.decodeResource(context.getResources(),
                    R.drawable.image_placeholder);
        }

        return bitmap;
    }
1) If I made if so the image would fit exactly being the source image big and the output image small, the result would be horrible (to pixelated) so I made it bigger to not pixelate as much

lunes, 13 de abril de 2015

Android Studio: Unit testing

Step 0












Step 1

Right click in the "src" folder and add an "androidTest" folder inside this folder add a "java" folder. Inside the latter you can add your test classes.

Step 2: build.gradle (<your_project>)

Add the following line
dependencies {

 ...
 testCompile 'junit:junit:4.12'
}

Step 3: build.gradle (outter most)

buildscript {
    
 ...

     dependencies {
         classpath 'com.android.tools.build:gradle:1.1.3'
     }
}

Step 4

In the bottom left side of Andriod Studio you will see a "Build Variants tab" click on in and in the drop down menu "Test Artifact" select "Android Instrumentation Tests"

martes, 7 de abril de 2015

Miscellaneous: Test videos

Test videos url

Android: Video thumbnail


ThumbnailUtils.createVideoThumbnail(path, MediaStore.Images.Thumbnails.MINI_KIND);