Pages
Showing posts with label image. Show all posts
Showing posts with label image. Show all posts
Monday, May 9, 2016
Cara Mempercepat Booting Ponsel Android
Tuesday, April 19, 2016
Android Developer Days is reloading for 2013
Android Developer Days(ADD) is now reloading for 2013. ADD 2013 will take place on June 14/15, 2013 in METU Cultural and Convention Center, Ankara, Turkey.
ADD 2013 is targeted to be the one of the biggest international tech related community organization in EMEA. The first ADD was on May 21/22, 2012. There were 700 participants and more than 30 speakers. ADD 2013, June 14/15, 2013, will have more participants, more fun, more networking and more inspiration.
Take a look at the About, Call for submissions and Participation Form.
ADD 2013 is targeted to be the one of the biggest international tech related community organization in EMEA. The first ADD was on May 21/22, 2012. There were 700 participants and more than 30 speakers. ADD 2013, June 14/15, 2013, will have more participants, more fun, more networking and more inspiration.
Take a look at the About, Call for submissions and Participation Form.
ADD is a community conference organized by:
- GDG Ankara,
- GDG ?stanbul,
- ODTÜ IEEE,
- GDG Baku,
- GTUG Brussels,
- GDG Cluj-Napoca,
- GDG Dnipropetrovsk,
- GDG Eski?ehir,
- GDG Konya,
- GDG Kyiv,
- GDG Lviv,
- GDG Samsun,
- GDG Tbilisi,
- GDG Timi?oara
Call For Submissions
You can join the conference with the followings:
- Presentations that is 15-20 minutes or 40-45 minutes long.
- Quickie: 10 minute presentation in small rooms.
- Poster: You can show your applications in a place dedicated for posters.
- Workshop: Presentations with hands on coding, 40 minutes long.
Indicate your contribution in OpenConf and please indicate how much your presentation is going to take when submitting it to OpenConf Deadline of Call for Submissions is 1st May 2013.
Subjects:
- Future Technologies
- Mobile World
- Future of Mobile World
- New Generation Mobile Devices (Project Glass)
- Android OS
- Future Versions
- Android in Different Architectures
- Android in Different Areas(Industry, Defense, Home Electronics etc.)
- Android App Development
- New Features and Capabilities
- App Development Best Practises
- Android SDK Tools
- UI(User Interface) / UX (User Experience) Design
- App Monetization
- Ad Integration
- In-app Billing
- User Statistics
- Android NDK
- Cross Platform App Development Frameworks
- HTML5
- Javascript
- Game Development
- Google TV
- Google Playstore
- Communication Solutions (NFC, Bluetooth, Wi-fi)
- 3G, 4G Wide Band Communication
- Cloud
- Google Cloud Messaging for Android
- Google App Engine
- Augmented Reality
- Social Media
- Location Based Services and Maps
- Mobile Education (Fatih Project)
- Mobile Payment
- Security
- Arduino
- Software Development Methodologies
- Success Stories
- GWT
Tuesday, April 5, 2016
Open image free draw something on bitmap and save bitmap to ExternalStorage
Example to load image with intent of Intent.ACTION_PICK, free draw something on the image, and save the bitmap to storage.

I have a series example of "Something about processing images in Android", but have show how to save the result bitmap to SD Card. This example modify from one of the example "Detect touch and free draw on Bitmap", add the function to save the result bitmap to External Storage, with file name "test.jpg".
layout/activity_main.xml
MainActivity.java
"android.permission.WRITE_EXTERNAL_STORAGE" is needed in AndroidManifest.xml. Also I add android_largeHeap="true" to require more heap for the app. But if you have a really big image, it still will closed, caused by Out Of Memory!
Download the files (Android Studio Format) .
more: Something about processing images in Android
Read More..

I have a series example of "Something about processing images in Android", but have show how to save the result bitmap to SD Card. This example modify from one of the example "Detect touch and free draw on Bitmap", add the function to save the result bitmap to External Storage, with file name "test.jpg".
layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android_layout_width="match_parent"
android_layout_height="match_parent"
android_padding="16dp"
android_orientation="vertical"
tools_context="com.blogspot.android_er.androiddrawbitmap.MainActivity">
<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_layout_gravity="center_horizontal"
android_autoLink="web"
android_text="http://android-er.blogspot.com/"
android_textStyle="bold" />
<Button
android_id="@+id/loadimage"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_text="Load Image" />
<Button
android_id="@+id/saveimage"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_text="Save Image" />
<ImageView
android_id="@+id/result"
android_scaleType="centerInside"
android_adjustViewBounds="true"
android_layout_gravity="center"
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_background="@android:color/background_dark" />
</LinearLayout>
MainActivity.java
package com.blogspot.android_er.androiddrawbitmap;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
Button btnLoadImage, btnSaveImage;
ImageView imageResult;
final int RQS_IMAGE1 = 1;
Uri source;
Bitmap bitmapMaster;
Canvas canvasMaster;
int prvX, prvY;
Paint paintDraw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnLoadImage = (Button)findViewById(R.id.loadimage);
btnSaveImage = (Button)findViewById(R.id.saveimage);
imageResult = (ImageView)findViewById(R.id.result);
paintDraw = new Paint();
paintDraw.setStyle(Paint.Style.FILL);
paintDraw.setColor(Color.WHITE);
paintDraw.setStrokeWidth(10);
btnLoadImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RQS_IMAGE1);
}
});
btnSaveImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(bitmapMaster != null){
saveBitmap(bitmapMaster);
}
}
});
imageResult.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
int x = (int) event.getX();
int y = (int) event.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
prvX = x;
prvY = y;
drawOnProjectedBitMap((ImageView) v, bitmapMaster, prvX, prvY, x, y);
break;
case MotionEvent.ACTION_MOVE:
drawOnProjectedBitMap((ImageView) v, bitmapMaster, prvX, prvY, x, y);
prvX = x;
prvY = y;
break;
case MotionEvent.ACTION_UP:
drawOnProjectedBitMap((ImageView) v, bitmapMaster, prvX, prvY, x, y);
break;
}
/*
* Return true to indicate that the event have been consumed.
* If auto-generated false, your code can detect ACTION_DOWN only,
* cannot detect ACTION_MOVE and ACTION_UP.
*/
return true;
}
});
}
/*
Project position on ImageView to position on Bitmap draw on it
*/
private void drawOnProjectedBitMap(ImageView iv, Bitmap bm,
float x0, float y0, float x, float y){
if(x<0 || y<0 || x > iv.getWidth() || y > iv.getHeight()){
//outside ImageView
return;
}else{
float ratioWidth = (float)bm.getWidth()/(float)iv.getWidth();
float ratioHeight = (float)bm.getHeight()/(float)iv.getHeight();
canvasMaster.drawLine(
x0 * ratioWidth,
y0 * ratioHeight,
x * ratioWidth,
y * ratioHeight,
paintDraw);
imageResult.invalidate();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap tempBitmap;
if(resultCode == RESULT_OK){
switch (requestCode){
case RQS_IMAGE1:
source = data.getData();
try {
//tempBitmap is Immutable bitmap,
//cannot be passed to Canvas constructor
tempBitmap = BitmapFactory.decodeStream(
getContentResolver().openInputStream(source));
Bitmap.Config config;
if(tempBitmap.getConfig() != null){
config = tempBitmap.getConfig();
}else{
config = Bitmap.Config.ARGB_8888;
}
//bitmapMaster is Mutable bitmap
bitmapMaster = Bitmap.createBitmap(
tempBitmap.getWidth(),
tempBitmap.getHeight(),
config);
canvasMaster = new Canvas(bitmapMaster);
canvasMaster.drawBitmap(tempBitmap, 0, 0, null);
imageResult.setImageBitmap(bitmapMaster);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
}
private void saveBitmap(Bitmap bm){
File file = Environment.getExternalStorageDirectory();
File newFile = new File(file, "test.jpg");
try {
FileOutputStream fileOutputStream = new FileOutputStream(newFile);
bm.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
Toast.makeText(MainActivity.this,
"Save Bitmap: " + fileOutputStream.toString(),
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this,
"Something wrong: " + e.getMessage(),
Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this,
"Something wrong: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
}
"android.permission.WRITE_EXTERNAL_STORAGE" is needed in AndroidManifest.xml. Also I add android_largeHeap="true" to require more heap for the app. But if you have a really big image, it still will closed, caused by Out Of Memory!
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="com.blogspot.android_er.androiddrawbitmap">
<uses-permission android_name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android_largeHeap="true"
android_allowBackup="true"
android_icon="@mipmap/ic_launcher"
android_label="@string/app_name"
android_supportsRtl="true"
android_theme="@style/AppTheme">
<activity android_name=".MainActivity">
<intent-filter>
<action android_name="android.intent.action.MAIN" />
<category android_name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
more: Something about processing images in Android
Thursday, March 24, 2016
Android Simple Image Gallery
In this post we are going to use the gallery control t construct a simple image gallery.
the layout is like the previous post.
remeber that the Gallery control is populated by an adapter, so we will create a custom adapter that contains ImageViews to display the images.
our custom adapter must inherit from BaseAdapter class
then in our activity onCreate Method:
and that was our simple Image gallery.
download the application from here
Read More..
the layout is like the previous post.
remeber that the Gallery control is populated by an adapter, so we will create a custom adapter that contains ImageViews to display the images.
our custom adapter must inherit from BaseAdapter class
package mina.android.GalleryDemo;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter {
Context Con;
//array to hold the values of image resources
int [] Resources;
Listviews;
public ImageAdapter(Context con,int[] resources)
{
Con=con;
Resources=resources;
views=new ArrayList(resources.length);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Resources.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return views.get(position);
//return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
//return views.get(position).getId();
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView img=new ImageView(Con);
img.setImageResource(Resources[position]);
views.add(img);
return img;
}
}
then in our activity onCreate Method:
int []res=new int[]{R.drawable.wc,R.drawable.wc2,R.drawable.wc3,R.drawable.wc4,R.drawable.wc5};
ItemsInGallery=res.length;
ImageAdapter imgAdapter=new ImageAdapter(this, res);
gallery.setAdapter(imgAdapter);
and that was our simple Image gallery.
download the application from here
Labels:
android,
Android App,
dan,
gallery,
image,
kitkat,
m,
perbandingan,
simple