どうすればいいですか?グライド?私はcache
イメージにもう一度それを使用したいと思います。前もって感謝します。Androidでグライドを使用して背景イメージを相対レイアウトに設定する
16
A
答えて
26
このようにRelativeLayoutに画像を読み込むことができます。私はちょうどあなたに背景にイメージを設定している難しい部分を示しています。キャッシングに
4.X前グライドバージョンについては
Glide.with(this).load(imageViewPath).asBitmap().into(new SimpleTarget<Bitmap>(relLayoutWidth, relLayoutHeight) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Drawable drawable = new BitmapDrawable(context.getResources(), resource);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
yourRelativeLayout.setBackground(drawable);
}
}
});
、このページを参照してください:Caching and Cache Invalidation。ジッドのため
アップデート以降V4:
GlideApp.with(this).load(R.drawable.backgroundimage).into(new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
yourRelativeLayout.setBackground(resource);
}
}
});
6
を、私は、このクラスは、さまざまなシナリオで自動的にグライドによって処理される特定のメソッドを持っているので、それを達成するための最良の方法は、あなた自身のViewTarget実装と作品だと思います。
ViewGroup(LinearLayout、RelativeLayoutなど)の抽象実装です。
public abstract class ViewGroupTarget<Z> extends ViewTarget<ViewGroup, Z> implements GlideAnimation.ViewAdapter {
public ViewGroupTarget(ViewGroup view) {
super(view);
}
/**
* Returns the current {@link android.graphics.drawable.Drawable} being displayed in the view using
* {@link android.widget.ImageView#getDrawable()}.
*/
@Override
public Drawable getCurrentDrawable() {
return view.getBackground();
}
/**
* Sets the given {@link android.graphics.drawable.Drawable} on the view using
* {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
*
* @param drawable {@inheritDoc}
*/
@Override
public void setDrawable(Drawable drawable) {
view.setBackground(drawable);
}
/**
* Sets the given {@link android.graphics.drawable.Drawable} on the view using
* {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
*
* @param placeholder {@inheritDoc}
*/
@Override
public void onLoadStarted(Drawable placeholder) {
view.setBackground(placeholder);
}
/**
* Sets the given {@link android.graphics.drawable.Drawable} on the view using
* {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
*
* @param errorDrawable {@inheritDoc}
*/
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
view.setBackground(errorDrawable);
}
/**
* Sets the given {@link android.graphics.drawable.Drawable} on the view using
* {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
*
* @param placeholder {@inheritDoc}
*/
@Override
public void onLoadCleared(Drawable placeholder) {
view.setBackground(placeholder);
}
@Override
public void onResourceReady(Z resource, GlideAnimation<? super Z> glideAnimation) {
this.setResource(resource);
}
protected abstract void setResource(Z resource);
}
具体的な実装(この場合はLinearLayout)。
public class LinearLayoutTarget extends ViewGroupTarget<Bitmap> {
private Context context;
public LinearLayoutTarget(Context context, LinearLayout linearLayout) {
super(linearLayout);
this.context = context;
}
/**
* Sets the {@link android.graphics.Bitmap} on the view using
* {@link android.widget.ImageView#setImageBitmap(android.graphics.Bitmap)}.
*
* @param resource The bitmap to display.
*/
@Override
protected void setResource(Bitmap resource) {
view.setBackground(new BitmapDrawable(context.getResources(), resource));
}
}
Glide.with(this.getApplicationContext())
.load(R.drawable.your_image)
.asBitmap()
.into(new LinearLayoutTarget(this.getApplicationContext(), (LinearLayout) yourLinearLayoutInstanceHere));
ビットマップを使用しない場合でも、さらに簡単な作業です。
具体的な実装。
public class LinearLayoutTarget extends ViewGroupTarget<Drawable> {
public LinearLayoutTarget(LinearLayout linearLayout) {
super(linearLayout);
}
/**
* Sets the {@link android.graphics.Bitmap} on the view using
* {@link android.widget.ImageView#setImageBitmap(android.graphics.Bitmap)}.
*
* @param resource The bitmap to display.
*/
@Override
protected void setResource(Drawable resource) {
view.setBackground(resource);
}
}
Glide.with(this.getApplicationContext())
.load(R.drawable.your_image)
.into(new LinearLayoutTarget((LinearLayout) yourLinearLayoutInstanceHere));
+2
実際には 'ViewGroupTarget
関連する問題
- 1. Androidグライドを使って相対レイアウトの背景を設定する方法
- 2. 背景イメージをblob:URIに設定する
- 3. webviewの背景イメージをAndroidのリソースグラフィックに設定する
- 4. SurfaceViewの背景イメージを設定する
- 5. 変数URL(jQuery)を使用してdivの背景イメージを設定する
- 6. [ショートコード]を使用して背景イメージを設定する方法は?
- 7. JQuery - イメージオブジェクトに背景イメージを設定
- 8. 相対レイアウトAndroid
- 9. Android - 相対レイアウト
- 10. Xamarin.Formsのレイアウトの背景イメージ
- 11. トランスフォーム3dを使用しているときの背景イメージと、相対、絶対位置のアブストラクト
- 12. Android:レイアウトの背景イメージを選択する方法
- 13. アンドロイド - 設定レイアウトの背景には、プログラム
- 14. PNGイメージをアンドロイドの相対レイアウトで設定する際の問題
- 15. イメージをグラフの背景として設定する方法は?
- 16. イメージを背景として設定する方法Textbox Corona
- 17. レイアウトのための背景イメージを設定する適切な方法
- 18. 相対レイアウトの背景がすべてのスペースを埋めていない
- 19. htmlページの背景イメージを設定してクリアします
- 20. 背景イメージをリンクとして設定しますか?
- 21. Android - SimpleCursorAdapter.ViewBinder - 背景色を設定する
- 22. Android - アプリケーションの背景を設定する
- 23. Python - 枕を使用して相対位置を指定してテキストまたはイメージを背景イメージの上に描画します
- 24. Android Studioで相対レイアウトでcardViewを使用できますか?
- 25. reactjsで背景イメージを設定するには?
- 26. GLKViewController iPhone OpenGLESで背景イメージを設定するには?
- 27. javascriptを使用して背景位置を設定する
- 28. ejsテンプレートを使用して背景画像を設定する
- 29. タスクバーの背景イメージを設定していますか?
- 30. Android設定の背景
なぜ 'Build.VERSION.SDK_INT> = Build.VERSION_CODES.JELLY_BEAN'が必要ですか? – jaynp
@ dal102これは私のアプリケーションに特化したものです –
これがなければ 'APIレベル16(現在の最小値はXXです)を呼び出すにはアンドロイド。view.View#setBackground' - >という警告メッセージが表示されますので、この解決法はJELLY_BEANとより高いAPI – thorin86