Advertisement
van9petryk

activity

May 21st, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.32 KB | None | 0 0
  1. package com.example.iamusing5530.myapplication;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.database.Cursor;
  7. import android.database.sqlite.SQLiteDatabase;
  8. import android.database.sqlite.SQLiteException;
  9. import android.graphics.Color;
  10. import android.graphics.drawable.Drawable;
  11. import android.media.Image;
  12. import android.net.Uri;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.os.Bundle;
  15. import android.support.v7.widget.RecyclerView;
  16. import android.util.Log;
  17. import android.view.View;
  18. import android.view.ViewGroup;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.ImageButton;
  22. import android.widget.ImageView;
  23. import android.widget.LinearLayout;
  24.  
  25. import java.util.ArrayList;
  26.  
  27. public class BtnImageActivity extends AppCompatActivity {
  28.  
  29.     EditText etColor;
  30.     Button btnAdd;
  31.     Button btnChoose;
  32.     ImageView imgPreview;
  33.  
  34.     RecyclerView recyclerView;
  35.     ImgButtonAdapter imgButtonAdapter;
  36.  
  37.     String uriStr = null;
  38.  
  39.     @Override
  40.     protected void onCreate(Bundle savedInstanceState) {
  41.         super.onCreate(savedInstanceState);
  42.         setContentView(R.layout.activity_btn_image);
  43.  
  44.         etColor = findViewById(R.id.et_color);
  45.         btnAdd = findViewById(R.id.btn_add);
  46.         btnChoose = findViewById(R.id.btn_choose);
  47.         imgPreview = findViewById(R.id.img_preview);
  48.  
  49.         recyclerView = findViewById(R.id.recycler);
  50.         imgButtonAdapter = new ImgButtonAdapter(this);
  51.         recyclerView.setAdapter(imgButtonAdapter);
  52.  
  53.         btnChoose.setOnClickListener(new View.OnClickListener() {
  54.             @Override
  55.             public void onClick(View v) {
  56.                 Intent intent = new Intent();
  57.                 intent.setType("image/*");
  58.                 intent.setAction(Intent.ACTION_GET_CONTENT);
  59.                 startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
  60.             }
  61.         });
  62.  
  63.         btnAdd.setOnClickListener(new View.OnClickListener() {
  64.             @Override
  65.             public void onClick(View v) {
  66.                 MyImageButton myImageButton = new MyImageButton();
  67.                 myImageButton.color = Color.parseColor(etColor.getText().toString());
  68.                 if (uriStr == null)
  69.                     return;
  70.                 myImageButton.uri = uriStr;
  71.                 imgButtonAdapter.add(myImageButton);
  72.             }
  73.         });
  74.     }
  75.  
  76.     @Override
  77.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  78.         if (requestCode == 0 && resultCode == RESULT_OK) {
  79.             Uri uri = data.getData();
  80.             imgPreview.setImageURI(uri);
  81.             uriStr = uri.toString();
  82.         }
  83.  
  84.         super.onActivityResult(requestCode, resultCode, data);
  85.     }
  86. }
  87.  
  88.  
  89. class ImgButtonAdapter extends RecyclerView.Adapter<ImgButtonAdapter.ViewHolder> {
  90.     Context context;
  91.     SQLiteDatabase db;
  92.  
  93.     ArrayList<MyImageButton> list = new ArrayList<>();
  94.     class ViewHolder extends RecyclerView.ViewHolder {
  95.         ImageButton mImageButton;
  96.         ViewHolder(ImageButton imageButton) {
  97.             super(imageButton);
  98.             mImageButton = imageButton;
  99.             mImageButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
  100.             LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
  101.                     LinearLayout.LayoutParams.MATCH_PARENT,
  102.                     100);
  103.             mImageButton.setLayoutParams(layoutParams);
  104.         }
  105.  
  106.         public void bind(MyImageButton myImageButton) {
  107.             mImageButton.setBackground(DrawableFactory.getStateListDrawable(myImageButton.color));
  108.             Log.d("AA", myImageButton.uri);
  109.             mImageButton.setImageURI(Uri.parse(myImageButton.uri));
  110.         }
  111.     }
  112.  
  113.     ImgButtonAdapter(Context context) {
  114.         this.context = context;
  115.         db = context.openOrCreateDatabase("my.db", Context.MODE_PRIVATE, null);
  116.         db.execSQL("CREATE TABLE IF NOT EXISTS \"t1\" (color INTEGER, uri TEXT)");
  117.         Cursor cur = db.rawQuery("SELECT * FROM \"t1\"", null);
  118.         if (cur.moveToFirst()) {
  119.             do {
  120.                 MyImageButton myImageButton = new MyImageButton();
  121.                 myImageButton.color = cur.getInt(0);
  122.                 myImageButton.uri = cur.getString(1);
  123.                 list.add(myImageButton);
  124.             } while (cur.moveToNext());
  125.         }
  126.  
  127.         Log.d("AA", String.valueOf(list.size()));
  128.         notifyDataSetChanged();
  129.     }
  130.  
  131.     @Override
  132.     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  133.         ImageButton imageButton = new ImageButton(context);
  134.         return new ViewHolder(imageButton);
  135.     }
  136.  
  137.     @Override
  138.     public void onBindViewHolder(ViewHolder holder, int position) {
  139.         holder.bind(list.get(position));
  140.     }
  141.  
  142.     @Override
  143.     public int getItemCount() {
  144.         return list.size();
  145.     }
  146.  
  147.     public void add(MyImageButton myImageButton) {
  148.         list.add(myImageButton);
  149.         notifyItemInserted(list.size() - 1);
  150.         ContentValues cv = new ContentValues();
  151.         cv.put("color", myImageButton.color);
  152.         cv.put("uri", myImageButton.uri);
  153.         db.insert("\"t1\"",null, cv);
  154.     }
  155. }
  156.  
  157. class MyImageButton {
  158.     Integer color = null;
  159.     String uri = null;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement