new Image Preview

This commit is contained in:
NudeDude 2018-10-08 17:47:57 +02:00
parent 85707c6b79
commit 9b9519ed60
7 changed files with 81 additions and 18 deletions

View File

@ -0,0 +1,76 @@
package org.nuclearfog.twidda.adapter;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.List;
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageHolder> {
private OnImageClickListener l;
private List<Bitmap> images;
public ImageAdapter(OnImageClickListener l) {
images = new ArrayList<>();
this.l = l;
}
public void addImage(Bitmap image) {
images.add(image);
}
@Override
public int getItemCount() {
return images.size();
}
@NonNull
@Override
public ImageAdapter.ImageHolder onCreateViewHolder(@NonNull final ViewGroup parent, int viewType) {
ImageView imageView = new ImageView(parent.getContext());
return new ImageHolder(imageView);
}
@Override
public void onBindViewHolder(@NonNull final ImageAdapter.ImageHolder vh, int index) {
final Bitmap image = images.get(index);
float ratio = image.getHeight() / 256.0f;
int destWidth = (int) (image.getWidth() / ratio);
Bitmap result = Bitmap.createScaledBitmap(image, destWidth, 256, false);
vh.item.setImageBitmap(result);
vh.item.setBackgroundColor(0xffffffff);
vh.item.setPadding(1, 1, 1, 1);
vh.item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
l.onImageClick(image);
}
});
}
public interface OnImageClickListener {
void onImageClick(Bitmap image);
}
class ImageHolder extends ViewHolder {
final ImageView item;
ImageHolder(ImageView item) {
super(item);
this.item = item;
}
}
}

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="20.0"
android:viewportHeight="20.0">
<path
android:fillColor="#FFFFFF"
android:pathData="M12.452,4.516c0.446,0.436 0.481,1.043 0,1.576L8.705,10l3.747,3.908c0.481,0.533 0.446,1.141 0,1.574c-0.445,0.436 -1.197,0.408 -1.615,0c-0.418,-0.406 -4.502,-4.695 -4.502,-4.695C6.112,10.57 6,10.285 6,10s0.112,-0.57 0.335,-0.789c0,0 4.084,-4.287 4.502,-4.695C11.255,4.107 12.007,4.08 12.452,4.516z" />
</vector>

View File

@ -13,11 +13,11 @@
<ImageButton <ImageButton
android:id="@+id/kill_button" android:id="@+id/kill_button"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_gravity="center" android:layout_gravity="center"
android:contentDescription="@string/progress_kill" android:contentDescription="@string/progress_kill"
style="@style/Widget.AppCompat.Button.Borderless"
app:srcCompat="@drawable/cross" /> app:srcCompat="@drawable/cross" />
</FrameLayout> </FrameLayout>

View File

@ -5,7 +5,6 @@
android:orientation="vertical"> android:orientation="vertical">
<android.support.v7.widget.Toolbar <android.support.v7.widget.Toolbar
android:id="@+id/image_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/bar_wide" /> android:layout_height="@dimen/bar_wide" />

View File

@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:background="@color/DarkBlue" android:background="@color/DarkBlue"
android:gravity="center" android:gravity="center"
@ -37,12 +38,12 @@
android:padding="5dp" android:padding="5dp"
android:singleLine="true" /> android:singleLine="true" />
<Button <ImageButton
android:id="@+id/clipboard" android:id="@+id/clipboard"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:background="@drawable/copy" /> style="@style/Widget.AppCompat.Button.Borderless"
app:srcCompat="@drawable/copy" />
</LinearLayout> </LinearLayout>

View File

@ -3,7 +3,6 @@
<string name="font">Schrift</string> <string name="font">Schrift</string>
<string name="highlight">Hervorhebung</string> <string name="highlight">Hervorhebung</string>
<string name="verify">verifiziert</string> <string name="verify">verifiziert</string>
<string name="fullimg">Großbild</string>
<string name="profile_locked">Privat</string> <string name="profile_locked">Privat</string>
<string name="load_factor">Anzahl Tweets</string> <string name="load_factor">Anzahl Tweets</string>
<string name="followback">Folgt dir</string> <string name="followback">Folgt dir</string>
@ -74,5 +73,4 @@
<string name="confirm_block">user sperren?</string> <string name="confirm_block">user sperren?</string>
<string name="confirm_delete_dm">Nachricht löschen?</string> <string name="confirm_delete_dm">Nachricht löschen?</string>
<string name="dm_not_found">Nachricht nicht gefunden!</string> <string name="dm_not_found">Nachricht nicht gefunden!</string>
<string name="image_preview">Vorschau</string>
</resources> </resources>

View File

@ -15,7 +15,6 @@
<string name="popup" translatable="false">Popup</string> <string name="popup" translatable="false">Popup</string>
<string name="highlight">Highlight</string> <string name="highlight">Highlight</string>
<string name="verify">verified</string> <string name="verify">verified</string>
<string name="fullimg">big image</string>
<string name="profile_locked">locked</string> <string name="profile_locked">locked</string>
<string name="load_factor">tweet count</string> <string name="load_factor">tweet count</string>
<string name="block">Block</string> <string name="block">Block</string>
@ -82,5 +81,4 @@
<string name="confirm_log_lout">log out?</string> <string name="confirm_log_lout">log out?</string>
<string name="confirm_cancel_tweet">cancel tweet?</string> <string name="confirm_cancel_tweet">cancel tweet?</string>
<string name="dm_not_found">message not found!</string> <string name="dm_not_found">message not found!</string>
<string name="image_preview">image preview</string>
</resources> </resources>