Ignore:
Timestamp:
Oct 30, 2013, 5:37:46 PM (11 years ago)
Author:
Jose Ruiz <joseruiz@…>
Branches:
master
Children:
16fd839
Parents:
931bb65
Message:

actalizacion classpath

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TibisayMovil/src/ve/gob/cenditel/tibisaymovil/PreferencesActivity.java

    r288126d r2ff9cec  
    11package ve.gob.cenditel.tibisaymovil;
     2import java.io.File;
     3
     4import android.content.Intent;
     5import android.content.SharedPreferences;
     6import android.database.Cursor;
     7import android.graphics.Bitmap;
     8import android.graphics.BitmapFactory;
     9import android.net.Uri;
    210import android.os.Bundle;
     11import android.preference.ListPreference;
     12import android.preference.Preference;
     13import android.preference.Preference.OnPreferenceChangeListener;
     14import android.preference.Preference.OnPreferenceClickListener;
    315import android.preference.PreferenceActivity;
     16import android.provider.MediaStore;
     17import android.view.Window;
     18import android.widget.Toast;
    419
    5 public class PreferencesActivity extends PreferenceActivity {
     20public class PreferencesActivity extends PreferenceActivity implements OnPreferenceClickListener,OnPreferenceChangeListener{
     21       
     22        static final int PICK_IMAGE = 33;
     23        public static final String imageKey = "image";
     24        public static final String positionKey = "position";
     25        private static final int MAXWIDTH = 400;
     26        private static final int MAXHEIGHT = 400;
     27        private static final long SIZELIMIT = 1024 * 1024;
     28       
     29        private SharedPreferences options;
     30        private Preference imagePreference;
     31       
    632    @Override
    733    public void onCreate(Bundle savedInstanceState) {
     34                //Estilando la barra de titulo
     35                final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
     36
    837        super.onCreate(savedInstanceState);
    9  
     38
    1039        addPreferencesFromResource(R.xml.preferences);
     40       
     41        this.options = this.getPreferenceManager().getSharedPreferences();
     42       
     43       
     44
     45       
     46        this.imagePreference = (Preference) findPreference(PreferencesActivity.imageKey);
     47        this.imagePreference.setOnPreferenceClickListener(this);
     48        this.imagePreference.setOnPreferenceChangeListener(this);
     49       
     50        this.loadSummary();
     51       
     52
     53        //Estilando Barra de titulo
     54                if(customTitleSupported)
     55                        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
     56       
    1157    }
     58   
     59        private void loadSummary() {
     60            String path = options.getString(PreferencesActivity.imageKey, "");
     61        if (!path.equals("")){
     62                this.imagePreference.setSummary(path);
     63        }
     64       
     65        }
     66
     67   
     68   
     69    @Override
     70        public boolean onPreferenceChange(Preference preference, Object newValue) {
     71          String summary="";
     72         
     73         
     74          if (summary!=null && !summary.equals("")){
     75                  preference.setSummary((CharSequence) summary);
     76                         
     77                  }
     78          return true;
     79        }
     80
     81
     82       
     83        @Override
     84        public boolean onPreferenceClick(Preference preference) {
     85               
     86                if (preference.getKey().equals(PreferencesActivity.imageKey)){
     87                                Intent i = new Intent(
     88                                Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
     89                                startActivityForResult(i, PreferencesActivity.PICK_IMAGE);
     90                                return true;
     91                }
     92                return false;
     93        }
     94   
     95        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     96             super.onActivityResult(requestCode, resultCode, data);
     97             
     98             
     99             if (requestCode == PreferencesActivity.PICK_IMAGE && resultCode == RESULT_OK){
     100                 
     101                 Uri selectedImage = data.getData();
     102                 String[] filePathColumn = { MediaStore.Images.Media.DATA };
     103         
     104                 Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
     105                 cursor.moveToFirst();
     106         
     107                 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
     108                 String imageSelectedPath = cursor.getString(columnIndex);
     109                 cursor.close();
     110                 
     111                 //Filter images if wrong format.
     112                 boolean validImage = this.validateImage(imageSelectedPath);
     113                 
     114                 if (validImage==true){
     115                         //Save and edit summary text in user interface.
     116                        SharedPreferences.Editor editor = this.options.edit();
     117                        editor.putString(PreferencesActivity.imageKey, imageSelectedPath);
     118                        editor.commit();
     119                        this.imagePreference.setSummary(imageSelectedPath);
     120                 }
     121                 
     122             
     123         
     124             }
     125
     126             
     127             
     128             
     129        }
     130
     131        //Check image dimensions and format.
     132        private boolean validateImage(String imageSelectedPath) {
     133                File f = new File(imageSelectedPath);
     134                long size = f.length();
     135
     136                if (size <= (PreferencesActivity.SIZELIMIT)) {
     137                       
     138                        Bitmap chosenImage = BitmapFactory.decodeFile(imageSelectedPath);
     139                       
     140                        if (chosenImage !=null)
     141                                return this.checkDimensions(chosenImage);
     142                        else{
     143                                Toast.makeText(this, this.getString(R.string.errorformat),Toast.LENGTH_SHORT).show();
     144                                return false;
     145                        }
     146
     147                } else {
     148                        Toast.makeText(this, this.getString(R.string.errorsize)+" "+(PreferencesActivity.SIZELIMIT)/(1024*1024)+"MB",Toast.LENGTH_SHORT).show();
     149                        return false;
     150                }
     151               
     152               
     153               
     154        }
     155
     156
     157        private boolean checkDimensions(Bitmap chosenImage) {
     158
     159                int width = chosenImage.getWidth();
     160                int height = chosenImage.getHeight();
     161
     162                if (width <= PreferencesActivity.MAXWIDTH && height <= PreferencesActivity.MAXHEIGHT) {
     163                        return true;
     164                       
     165                } else {
     166
     167                        Toast.makeText( this,this.getString(R.string.errordimension) +" "+ PreferencesActivity.MAXWIDTH
     168                                                        + "x" + PreferencesActivity.MAXHEIGHT,Toast.LENGTH_SHORT).show();
     169                        return false;
     170                }               
     171        }
     172
     173
     174       
     175
    12176}
Note: See TracChangeset for help on using the changeset viewer.