Java 类com.bumptech.glide.signature.StringSignature 实例源码
项目:glide-support
文件:TestFragment.java
@Override protected void load(final Context context) throws Exception {
String profileUrl = "...";
long lastProfileCache = context.getSharedPreferences("profile", 0)
.getLong("lastCacheTime", System.currentTimeMillis());
Glide // display a fresh version
.with(context)
.load(profileUrl)
.thumbnail(Glide // display a cached version
.with(context)
.using(new NetworkDisablingLoader<>()) // only if exists in disk cache
.load(profileUrl)
.signature(new StringSignature(String.valueOf(lastProfileCache)))
.diskCacheStrategy(SOURCE)
)
.diskCacheStrategy(NONE) // downloaded right now
.into(imageView)
;
}
项目:glide-support
文件:TestFragment.java
private void cache(String url, final Bitmap bitmap) {
Key key = new StringSignature(url);
// the key here is that Engine uses fetcher.getId() for constructing OriginalKey from EngineKey
// see Engine.load and also signature can be ignored because it is an EmptySignature instance for most
App.getInstance().getDiskCache().put(key, new Writer() {
@TargetApi(VERSION_CODES.KITKAT) // for try-with-resources
@Override public boolean write(File file) {
try (OutputStream out = new FileOutputStream(file)) {
// mimic default behavior you can also use Bitmap.compress
BitmapPool pool = Glide.get(getContext()).getBitmapPool();
BitmapResource resource = BitmapResource.obtain(bitmap, pool);
new BitmapEncoder().encode(resource, out);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
});
}
项目:filepicker
文件:ImageBrowserActivity.java
@Override
public Object instantiateItem(final ViewGroup container, int position) {
final PhotoView view = new PhotoView(ImageBrowserActivity.this);
view.setScaleType(ImageView.ScaleType.FIT_CENTER);
ImageFile file = mList.get(position);
RequestManager requestManager = Glide.with(ImageBrowserActivity.this);
DrawableRequestBuilder requestBuilder;
if (file.getEditCount() > 0) {
requestBuilder = requestManager.load(file.getEditedPath())
.signature(new StringSignature(file.getEditCount() + ""));
} else {
requestBuilder = requestManager.load(file.getPath());
}
requestBuilder
.crossFade()
.placeholder(R.mipmap.ic_place_holder).into(view);
container.addView(view);
return view;
}
项目:GCSApp
文件:Rv_DonateImgsAdapter.java
@Override
public void onBindViewHolder(final AnchorHotViewHolder holder, final int position) {
Glide.with(mContext).load(mData.get(position)).signature(new StringSignature(new Random().nextInt(1000) + "")).into(holder.iv_item_donate);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, ImagePagerActivity.class);
// 图片url,为了演示这里使用常量,一般从数据库中或网络中获取
intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_URLS, formatPic());
intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_INDEX, position);
mContext.startActivity(intent);
((Activity) mContext).overridePendingTransition(R.anim.zoomin, 0);
}
});
}
项目:glide-support
文件:TestFragment.java
@SuppressWarnings("unchecked")
@Override protected void load(Context context) {
GenericRequestBuilder<Bitmap, Bitmap, Bitmap, Bitmap> glide = Glide
.with(context)
.using(new PassthroughModelLoader<Bitmap, Bitmap>(), Bitmap.class)
.from(Bitmap.class)
.as(Bitmap.class)
.decoder(new BitmapBitmapResourceDecoder(context))
.cacheDecoder(new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(context)))
.encoder(new BitmapEncoder())
// or .diskCacheStrategy(DiskCacheStrategy.NONE) instead of last 2
;
// simulate a bitmap input
Drawable drawable = ContextCompat.getDrawable(context, android.R.drawable.sym_def_app_icon);
Bitmap bitmap = Bitmap.createBitmap(
drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
glide
.clone()
.load(bitmap)
.signature(new StringSignature("android.R.drawable.sym_def_app_icon")) // required for caching
.diskCacheStrategy(DiskCacheStrategy.NONE) // but can't really cache it, see #122 comments
.transform(new CenterCrop(context))
.into(imageView)
;
}
项目:filepicker
文件:ImageBrowserActivity.java
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ImageThumbnailHolder viewHolder = (ImageThumbnailHolder) holder;
ImageFile file = mSelectedThumbnailList.get(position);
RequestManager requestManager = Glide.with(ImageBrowserActivity.this);
DrawableRequestBuilder requestBuilder;
if (file.getEditCount() > 0) {
requestBuilder = requestManager.load(file.getEditedPath())
.signature(new StringSignature(file.getEditCount() + ""));
} else {
requestBuilder = requestManager.load(file.getPath());
}
requestBuilder.centerCrop()
.crossFade()
.placeholder(R.mipmap.ic_place_holder).into(viewHolder.imageView);
if (mList.get(mCurrentIndex).getId() == file.getId()) {
viewHolder.ivBlock.setVisibility(View.VISIBLE);
} else {
viewHolder.ivBlock.setVisibility(View.GONE);
}
if (mIsPreview) {
viewHolder.shadow.setVisibility(file.isSelected() ? View.GONE : View.VISIBLE);
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mViewPager.setCurrentItem(Integer.valueOf(mSelectedPosition.get(position)), false);
mRecyclerView.scrollToPosition(position);
}
});
}
项目:GCSApp
文件:MyInfoDelegate.java
public void uploadIconSucceed(File file, String token) {
qiniuToken = token;
Glide.with(context).load(file).asBitmap().centerCrop().signature(new StringSignature(new Date().getTime() + "")).into(new BitmapImageViewTarget(iv_info_icon) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
iv_info_icon.setImageDrawable(circularBitmapDrawable);
}
});
}
项目:glide-support
文件:TestFragment.java
private void updateProfileCache(final Context context, String profileUrl) {
final long lastProfileCache = System.currentTimeMillis();
Glide
.with(context)
.load(profileUrl)
.signature(new StringSignature(String.valueOf(lastProfileCache)))
.diskCacheStrategy(SOURCE)
.listener(new SaveLastProfileCacheTime(context, lastProfileCache))
.preload()
;
}
项目:glide-support
文件:TestFragment.java
@Override protected void load(final Context context) throws Exception {
final ImageView imageView = this.imageView;
toto = toto + 1;
Glide
.with(context.getApplicationContext())
.load("http://lorempixel.com/400/200/sports")
.signature(new StringSignature(Integer.toString(toto)))
.centerCrop()
.listener(new LoggingListener<String, GlideDrawable>())
.into(imageView)
;
}
项目:glide-support
文件:TestFragment.java
@Override protected void load1(Context context, ImageView imageView) throws Exception {
Glide
.with(this)
// default timeout is 2.5 seconds (com.bumptech.glide.load.data.HttpUrlFetcher)
.load("https://httpbin.org/delay/12") // force a timeout: 2.5 < 12
.signature(new StringSignature("load1")) // distinguish from other load to make sure loader is picked up
.placeholder(R.drawable.glide_placeholder)
.error(R.drawable.glide_error)
.listener(new LoggingListener<String, GlideDrawable>("load1"))
.into(new LoggingTarget<>("load1", Log.VERBOSE, new GlideDrawableImageViewTarget(imageView)))
;
}
项目:glide-support
文件:TestFragment.java
@Override protected void load2(Context context, ImageView imageView) throws Exception {
Glide
.with(this)
.using(new StreamModelLoaderWrapper<>(new OkHttpUrlLoader(longTimeoutClient)))
.load(new GlideUrl("https://httpbin.org/delay/12")) // timeout increased: 15 > 10, so it'll pass
.signature(new StringSignature("load2")) // distinguish from other load to make sure loader is picked up
.placeholder(R.drawable.glide_placeholder)
// since the test URL returns a JSON stream, the load will fail,
// let's still add an error to see that the load fails slower than the other,
// meaning the image was actually tried to be decoded
.error(R.drawable.glide_error)
.listener(new LoggingListener<GlideUrl, GlideDrawable>("load2"))
.into(new LoggingTarget<>("load2", Log.VERBOSE, new GlideDrawableImageViewTarget(imageView)))
;
}
项目:texo
文件:SaveImageService.java
@Override
protected void onHandleIntent(Intent intent) {
Uri imageUri = intent.getParcelableExtra(SOURCE_IMAGE_URI);
String watermarkJson = intent.getStringExtra(WATERMARK_JSON);
Watermark watermark = Watermark.fromJson(watermarkJson, getAssets());
String outputPath = intent.getStringExtra(OUTPUT_PATH);
File outFile = new File(outputPath);
int targetWidth = intent.getIntExtra(OUTPUT_WIDTH, 0);
int targetHeight = intent.getIntExtra(OUTPUT_HEIGHT, 0);
mOutputDestination = intent.getIntExtra(OUTPUT_DESTINATION, INTENT_EXPORT);
Bitmap outputBitmap = null;
Exception exception = null;
try {
// add signature so Glide reloads - otherwise it might use cached buffer which was written on
outputBitmap = Glide.with(getApplicationContext())
.loadFromMediaStore(imageUri)
.asBitmap()
.signature(new StringSignature(ImageUtil.getTimestamp()))
.into(targetWidth, targetHeight)
.get();
} catch (InterruptedException | ExecutionException e) {
exception = e;
}
if (exception != null) {
String resultMessage = String.format("%s load error %s", TAG, exception.getMessage());
Log.e(TAG, resultMessage);
publishResults("", RESULT_ERROR_CODE, resultMessage);
} else {
saveImageFile(outputBitmap, watermark, outFile);
}
}
项目:QingNianTuZhai
文件:SaveImgsService.java
private void saveImg(String url){
//检查是否有sd卡
if (saveDir == null) {
showToast(R.string.save_not_sd);
return;
}
// 检查本地是否有
String fileName = getFileNameByUrl(url);
File localFile = new File(saveDir,fileName);
if (localFile.exists()){
showToast(R.string.save_exist);
return;
}
// 检查glide的disk是否有
DiskCache diskCache = DiskLruCacheWrapper.get(cacheDir, App.DEFAULT_DISK_CACHE_SIZE);
File diskTempFile = diskCache.get(new StringSignature(url));
if (diskTempFile == null || !diskTempFile.exists()){
showToast(R.string.save_not_downloaded);
return;
}
// 检查是否在队列中
if (mUrlSet.contains(url)){
showToast(R.string.save_saving);
return;
}
mExecutorService.execute(new SaveImgRunnable(url,diskTempFile.getAbsolutePath(),localFile.getAbsolutePath()));
mUrlSet.add(url);
showToast(R.string.save_start);
}
项目:BioStar2Android
文件:GlidePhotoData.java
public GlidePhotoData(Activity activity, ImageView view, int defaultResID, String lastModify, int maxsize, String subdomain, String url) {
mImageView = view;
mIdentify = subdomain + url;
mUrl = url;
mMaxSize = maxsize;
Glide.with(activity)
.load(url)
.placeholder(defaultResID)
.signature(new StringSignature(lastModify))
.decoder(mResourceDecoder)
.crossFade()
.fitCenter()
.into(mImageView);
}
项目:BioStar2Android
文件:GlidePhotoData.java
public GlidePhotoData(Activity activity, ImageView view, String lastModify, int maxsize, String subdomain, String url) {
mImageView = view;
mIdentify = subdomain + url;
mUrl = url;
mMaxSize = maxsize;
Glide.with(activity)
.load(url)
.signature(new StringSignature(lastModify))
.decoder(mResourceDecoder)
.crossFade()
.fitCenter()
.into(mImageView);
}
项目:hipda
文件:GlideHelper.java
public static void loadAvatar(RequestManager glide, ImageView view, String avatarUrl) {
String cacheKey = null;
if (avatarUrl != null)
cacheKey = AVATAR_CACHE_KEYS.get(avatarUrl);
if (cacheKey == null) {
if (avatarUrl == null || NOT_FOUND_AVATARS.containsKey(avatarUrl)) {
avatarUrl = DEFAULT_AVATAR_FILE.getAbsolutePath();
}
cacheKey = avatarUrl;
}
if (HiSettingsHelper.getInstance().isCircleAvatar()) {
glide.load(avatarUrl)
.signature(new StringSignature(cacheKey))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.bitmapTransform(new CropCircleTransformation(HiApplication.getAppContext()))
.error(DEFAULT_USER_ICON)
.crossFade()
.into(view);
} else {
glide.load(avatarUrl)
.signature(new StringSignature(cacheKey))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.centerCrop()
.error(DEFAULT_USER_ICON)
.crossFade()
.into(view);
}
}
项目:ring-client-android
文件:SmartListAdapter.java
@Override
public void onBindViewHolder(SmartListViewHolder holder, int position) {
final SmartListViewModel smartListViewModel = mSmartListViewModels.get(position);
holder.convParticipants.setText(smartListViewModel.getContactName());
long lastInteraction = smartListViewModel.getLastInteractionTime();
String lastInteractionStr = lastInteraction == 0 ?
"" : DateUtils.getRelativeTimeSpanString(lastInteraction, System.currentTimeMillis(), 0L, DateUtils.FORMAT_ABBREV_ALL).toString();
holder.convTime.setText(lastInteractionStr);
if (smartListViewModel.hasOngoingCall()) {
holder.convStatus.setText(holder.itemView.getContext().getString(R.string.ongoing_call));
} else if (smartListViewModel.getLastInteraction() != null) {
holder.convStatus.setText(getLastInteractionSummary(smartListViewModel.getLastEntryType(),
smartListViewModel.getLastInteraction(),
holder.itemView.getContext()));
} else {
holder.convStatus.setVisibility(View.GONE);
}
if (smartListViewModel.hasUnreadTextMessage()) {
holder.convParticipants.setTypeface(null, Typeface.BOLD);
holder.convTime.setTypeface(null, Typeface.BOLD);
holder.convStatus.setTypeface(null, Typeface.BOLD);
} else {
holder.convParticipants.setTypeface(null, Typeface.NORMAL);
holder.convTime.setTypeface(null, Typeface.NORMAL);
holder.convStatus.setTypeface(null, Typeface.NORMAL);
}
if (smartListViewModel.getPhotoData() != null) {
Glide.with(holder.itemView.getContext())
.fromBytes()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(false)
.load(smartListViewModel.getPhotoData())
.crossFade()
.signature(new StringSignature(String.valueOf(Arrays.hashCode(smartListViewModel.getPhotoData()))))
.placeholder(R.drawable.ic_contact_picture)
.transform(new CircleTransform(holder.itemView.getContext()))
.error(R.drawable.ic_contact_picture)
.into(holder.photo);
} else {
Glide.with(holder.itemView.getContext())
.load(R.drawable.ic_contact_picture)
.crossFade()
.signature(new StringSignature(smartListViewModel.getUuid()))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.photo);
}
holder.online.setVisibility(smartListViewModel.isOnline() ? View.VISIBLE : View.GONE);
holder.bind(listener, smartListViewModel);
}
项目:RunHDU
文件:Utility.java
public static void loadFriendProfileImg(Context context, String username, ImageView view) {
Glide.with(context).load(URLs.PROFILE_URL + username + ".JPEG")
.signature(new StringSignature(Utility.getTime(Calendar.HOUR_OF_DAY)))
.dontAnimate().error(R.drawable.photo).into(view);
}
项目:Orin
文件:ArtistSignatureUtil.java
public StringSignature getArtistSignature(String artistName) {
return new StringSignature(String.valueOf(getArtistSignatureRaw(artistName)));
}
项目:RetroMusicPlayer
文件:ArtistSignatureUtil.java
public StringSignature getArtistSignature(String artistName) {
return new StringSignature(String.valueOf(getArtistSignatureRaw(artistName)));
}
项目:narrate-android
文件:EntriesRecyclerAdapter.java
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
viewHolder.itemView.setClickable(true);
viewHolder.itemView.setActivated(mSelectedItems.get(position, false));
entry = mItems.get(position);
date = entry.creationDate;
description = entry.text;
tags = entry.tags;
starred = entry.starred;
emptyCal.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
emptyCal.set(Calendar.MONTH, date.get(Calendar.MONTH));
emptyCal.set(Calendar.YEAR, date.get(Calendar.YEAR));
viewHolder.title.setText(entry.title);
if (description != null)
viewHolder.description.setText(description.substring(0, Math.min(description.length(), 400)));
viewHolder.timeOfDay.setText(timeFormat.format(date.getTime()));
if (entry.photos.isEmpty()) {
viewHolder.thumbnail.setVisibility(View.GONE);
viewHolder.dayOfMonth.setVisibility(View.VISIBLE);
viewHolder.dayOfMonth.setText(String.valueOf(entry.creationDate.get(Calendar.DAY_OF_MONTH)));
if (!colorDates.contains(emptyCal.getTimeInMillis())) {
int index = mBackgroundCount++ % mCircleBackgrounds.length;
if (Build.VERSION.SDK_INT >= 16)
viewHolder.dayOfMonth.setBackground(mCircleBackgrounds[index]);
else
viewHolder.dayOfMonth.setBackgroundDrawable(mCircleBackgrounds[index]);
viewHolder.dayOfMonth.setTag(index);
colorMap.put(emptyCal.getTimeInMillis(), index);
colorDates.add(emptyCal.getTimeInMillis());
} else {
if (Build.VERSION.SDK_INT >= 16)
viewHolder.dayOfMonth.setBackground(mCircleBackgrounds[colorMap.get(emptyCal.getTimeInMillis())]);
else
viewHolder.dayOfMonth.setBackgroundDrawable(mCircleBackgrounds[colorMap.get(emptyCal.getTimeInMillis())]);
}
} else {
viewHolder.dayOfMonth.setVisibility(View.GONE);
viewHolder.thumbnail.setVisibility(View.VISIBLE);
String path = entry.photos.get(0).path;
File image = new File(path);
Glide.with(GlobalApplication.getAppContext())
.load(path)
.transform(mRoundCornerTransformation)
.placeholder(R.color.transparent)
.signature(new StringSignature(String.valueOf(image.lastModified())))
.into(viewHolder.thumbnail);
}
if (starred) {
viewHolder.bookmark.setVisibility(View.VISIBLE);
} else {
viewHolder.bookmark.setVisibility(View.INVISIBLE);
}
}
项目:Phonograph
文件:ArtistSignatureUtil.java
public StringSignature getArtistSignature(String artistName) {
return new StringSignature(String.valueOf(getArtistSignatureRaw(artistName)));
}