背景を設定するには:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
それを行う最良の方法はありますか?
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
それを行う最良の方法はありますか?
layout.setBackgroundResource(R.drawable.ready);
正しい。
それを達成する別の方法は、次を使用することです。
final int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
layout.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.ready) );
} else {
layout.setBackground(ContextCompat.getDrawable(context, R.drawable.ready));
}
しかし、大きな画像を読み込もうとしているために問題が発生していると思います。これは、大きなビットマップをロードする方法についての優れたチュートリアルです
。
更新: API レベル 22 で
廃止された getDrawable(int ) は、API レベル 22
getDrawable(int )
で廃止されました。代わりに、サポート ライブラリの次のコードを使用する必要があります。
ContextCompat.getDrawable(context, R.drawable.ready)
ContextCompat.getDrawableのソース コードを参照すると、次のようになります。
/**
* Return a drawable object associated with a particular resource ID.
* <p>
* Starting in {@link android.os.Build.VERSION_CODES#LOLLIPOP}, the returned
* drawable will be styled for the specified Context's theme.
*
* @param id The desired resource identifier, as generated by the aapt tool.
* This integer encodes the package, type, and resource entry.
* The value 0 is an invalid identifier.
* @return Drawable An object that can be used to draw this resource.
*/
public static final Drawable getDrawable(Context context, int id) {
final int version = Build.VERSION.SDK_INT;
if (version >= 21) {
return ContextCompatApi21.getDrawable(context, id);
} else {
return context.getResources().getDrawable(id);
}
}
API 22 以降ではgetDrawable(int, Theme)
、getDrawable(int) の代わりに メソッドを使用する必要があります。
更新:
サポート v4 ライブラリを使用している場合は、すべてのバージョンで次の内容で十分です。
ContextCompat.getDrawable(context, R.drawable.ready)
アプリの build.gradle に以下を追加する必要があります
compile 'com.android.support:support-v4:23.0.0' # or any version above
または、以下のような任意の API で ResourceCompat を使用します。
import android.support.v4.content.res.ResourcesCompat;
ResourcesCompat.getDrawable(getResources(), R.drawable.name_of_drawable, null);
これを試して:
layout.setBackground(ContextCompat.getDrawable(context, R.drawable.ready));
API 16 <:
layout.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.ready));
バターナイフを使用して、これをクラスの先頭 (メソッドの前) に追加することにより、ドローアブル リソースを変数にバインドします。
@Bind(R.id.some_layout)
RelativeLayout layout;
@BindDrawable(R.drawable.some_drawable)
Drawable background;
次に、メソッドの1つの中に追加します
layout.setBackground(background);
それだけで十分です
このコードを試してください:
Drawable thumb = ContextCompat.getDrawable(getActivity(), R.mipmap.cir_32);
mSeekBar.setThumb(thumb);