gilist) {
mGiList = gilist;
- mImageLoader =ImageLoader.getInstance(GalleryListActivity.this);
+ mImageLoader = ImageLoader.getInstance(GalleryListActivity.this);
}
@Override
public int getCount() {
return mGiList.size();
}
+
@Override
public Object getItem(int position) {
return mGiList == null ? 0 : mGiList.get(position);
}
+
@Override
public long getItemId(int position) {
return position;
@@ -1670,51 +1819,64 @@ public class GalleryListActivity extends AbsGalleryActivity
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- GalleryInfo gi= mGiList.get(position);
+ GalleryInfo gi = mGiList.get(position);
- if (convertView == null ||
- (mListMode == LIST_MODE_DETAIL && convertView.getId() != R.id.gallery_list_detail) ||
- (mListMode == LIST_MODE_THUMB && convertView.getId() != R.id.gallery_list_thumb)) {
+ if (convertView == null
+ || (mListMode == LIST_MODE_DETAIL && convertView.getId() != R.id.gallery_list_detail)
+ || (mListMode == LIST_MODE_THUMB && convertView.getId() != R.id.gallery_list_thumb)) {
// Get new view
ViewHolder viewHolder = new ViewHolder();
switch (mListMode) {
case LIST_MODE_DETAIL:
convertView = LayoutInflater.from(GalleryListActivity.this)
- .inflate(R.layout.gallery_list_detail_item, parent, false);
- CardViewSalon.reformWithShadow(convertView, new int[][]{
- new int[]{android.R.attr.state_pressed},
- new int[]{android.R.attr.state_activated},
- new int[]{}},
- new int[]{0xff84cae4, 0xff33b5e5, 0xFFFAFAFA}, null, false); // TODO
- viewHolder.thumb = (LoadImageView)convertView.findViewById(R.id.thumb);
- viewHolder.category = (TextView)convertView.findViewById(R.id.category);
- viewHolder.simpleLanguage = (TextView)convertView.findViewById(R.id.simple_language);
- viewHolder.title = (TextView)convertView.findViewById(R.id.title);
- viewHolder.uploader = (TextView)convertView.findViewById(R.id.uploader);
- viewHolder.rate = (RatingView)convertView.findViewById(R.id.rate);
- viewHolder.posted = (TextView) convertView.findViewById(R.id.posted);
+ .inflate(R.layout.gallery_list_detail_item, parent,
+ false);
+ CardViewSalon.reformWithShadow(convertView, new int[][] {
+ new int[] { android.R.attr.state_pressed },
+ new int[] { android.R.attr.state_activated },
+ new int[] {} }, new int[] { 0xff84cae4, 0xff33b5e5,
+ 0xFFFAFAFA }, null, false); // TODO
+ viewHolder.thumb = (LoadImageView) convertView
+ .findViewById(R.id.thumb);
+ viewHolder.category = (TextView) convertView
+ .findViewById(R.id.category);
+ viewHolder.simpleLanguage = (TextView) convertView
+ .findViewById(R.id.simple_language);
+ viewHolder.title = (TextView) convertView
+ .findViewById(R.id.title);
+ viewHolder.uploader = (TextView) convertView
+ .findViewById(R.id.uploader);
+ viewHolder.rate = (RatingView) convertView
+ .findViewById(R.id.rate);
+ viewHolder.posted = (TextView) convertView
+ .findViewById(R.id.posted);
convertView.setTag(viewHolder);
break;
case LIST_MODE_THUMB:
convertView = LayoutInflater.from(GalleryListActivity.this)
- .inflate(R.layout.gallery_list_thumb_item, parent, false);
+ .inflate(R.layout.gallery_list_thumb_item, parent,
+ false);
TileSalon.reform(convertView, 0xFFFAFAFA); // TODO
- viewHolder.thumb = (LoadImageView)convertView.findViewById(R.id.thumb);
- viewHolder.category = (TextView)convertView.findViewById(R.id.category);
- viewHolder.simpleLanguage = (TextView)convertView.findViewById(R.id.simple_language);
+ viewHolder.thumb = (LoadImageView) convertView
+ .findViewById(R.id.thumb);
+ viewHolder.category = (TextView) convertView
+ .findViewById(R.id.category);
+ viewHolder.simpleLanguage = (TextView) convertView
+ .findViewById(R.id.simple_language);
convertView.setTag(viewHolder);
break;
}
}
- ViewHolder viewHolder = (ViewHolder)convertView.getTag();
+ ViewHolder viewHolder = (ViewHolder) convertView.getTag();
final LoadImageView thumb = viewHolder.thumb;
if (!String.valueOf(gi.gid).equals(thumb.getKey())) {
// Set new thumb
thumb.setImageDrawable(null);
thumb.setLoadInfo(gi.thumb, String.valueOf(gi.gid));
mImageLoader.add(gi.thumb, String.valueOf(gi.gid),
- new LoadImageView.SimpleImageGetListener(thumb).setFixScaleType(true));
+ new LoadImageView.SimpleImageGetListener(thumb)
+ .setFixScaleType(true));
}
// Set category
TextView category = viewHolder.category;
diff --git a/src/com/hippo/ehviewer/util/ViewUtils.java b/src/com/hippo/ehviewer/util/ViewUtils.java
index 58ad83f83..d8789528f 100644
--- a/src/com/hippo/ehviewer/util/ViewUtils.java
+++ b/src/com/hippo/ehviewer/util/ViewUtils.java
@@ -20,6 +20,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.View;
+import android.view.View.MeasureSpec;
import android.view.ViewGroup;
import android.view.ViewParent;
@@ -45,7 +46,8 @@ public final class ViewUtils {
*/
public static void getLocationInWindow(View view, int[] location) {
if (location == null || location.length < 2) {
- throw new IllegalArgumentException("location must be an array of two integers");
+ throw new IllegalArgumentException(
+ "location must be an array of two integers");
}
float[] position = new float[2];
@@ -55,7 +57,7 @@ public final class ViewUtils {
ViewParent viewParent = view.getParent();
while (viewParent instanceof View) {
- view = (View)viewParent;
+ view = (View) viewParent;
if (view.getId() == android.R.id.content) {
break;
}
@@ -67,7 +69,7 @@ public final class ViewUtils {
position[1] += view.getTop();
viewParent = view.getParent();
- }
+ }
location[0] = (int) (position[0] + 0.5f);
location[1] = (int) (position[1] + 0.5f);
@@ -86,11 +88,13 @@ public final class ViewUtils {
/**
* Returns a bitmap showing a screenshot of the view passed in.
+ *
* @param v
* @return
*/
public static Bitmap getBitmapFromView(View v) {
- Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
+ Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
+ Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// TODO I need to know why I need it, when ScrollView
canvas.translate(-v.getScrollX(), -v.getScrollY());
@@ -100,32 +104,49 @@ public final class ViewUtils {
public static boolean isClickAction(MotionEvent event) {
// TODO bad idea to check click
- return event.getAction() == MotionEvent.ACTION_UP &&
- System.nanoTime() / 1000000 - event.getDownTime() < 200;
+ return event.getAction() == MotionEvent.ACTION_UP
+ && System.nanoTime() / 1000000 - event.getDownTime() < 200;
}
public static void removeFromParent(View view) {
ViewParent vp = view.getParent();
if (vp instanceof ViewGroup)
- ((ViewGroup)vp).removeView(view);
+ ((ViewGroup) vp).removeView(view);
}
/**
- * Method that removes the support for HardwareAcceleration from a {@link View}.
+ * Method that removes the support for HardwareAcceleration from a
+ * {@link View}.
*
* Check AOSP notice:
+ *
*
* 'ComposeShader can only contain shaders of different types (a BitmapShader and a
* LinearGradient for instance, but not two instances of BitmapShader)'. But, 'If your
* application is affected by any of these missing features or limitations, you can turn
* off hardware acceleration for just the affected portion of your application by calling
- * setLayerType(View.LAYER_TYPE_SOFTWARE, null).'
+ * setLayerType(View.LAYER_TYPE_SOFTWARE, null).'
+ *
*
- * @param v The view
+ * @param v
+ * The view
*/
public static void removeHardwareAccelerationSupport(View v) {
if (v.getLayerType() != View.LAYER_TYPE_SOFTWARE) {
v.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
}
+
+ public static void measureView(View v) {
+ ViewGroup.LayoutParams oldLp = v.getLayoutParams();
+ ViewGroup.LayoutParams newLp = new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
+ v.setLayoutParams(newLp);
+ int measureSpec = MeasureSpec.makeMeasureSpec(0,
+ MeasureSpec.UNSPECIFIED);
+ v.measure(measureSpec, measureSpec);
+ if (oldLp != null)
+ v.setLayoutParams(oldLp);
+ }
}