我将图像设置为RadioButton的drawableLeft,但它很大.我想设置图像的高度,宽度和scaleType,以使它看起来不错,就像在ImageView中一样:
android:layout_width="30dip"
android:layout_height="30dip"
android:scaleType="fitXY"
Run Code Online (Sandbox Code Playgroud)
但我发现当它在drawableLeft中设置时,没有图像属性.
有没有办法解决这个问题.
是否有可能在XML中处理这个问题?
我Glide在我的项目中加载了一张图片,但我发现了一件奇怪的事情.当我使用时into(ImageView),ImageView显示与使用时的显示不同into(new BitmapImageViewTarget(centerImageView)):
这是我的布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/center_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我用的时候:
String imageUrl = "http://7xlz1k.com1.z0.glb.clouddn.com/feedback-201604229711.png";
Glide.with(this).load(imageUrl).into(centerImageView);
Run Code Online (Sandbox Code Playgroud)
ImageView wrap_content不起作用,它显示如下:

但是当我使用时:
Glide.with(this).load(imageUrl).asBitmap().into(new BitmapImageViewTarget(centerImageView));
Run Code Online (Sandbox Code Playgroud)
ImageView看起来:
包含在其中的图像imageUrl是120*120的图片.
当我使用时BitmapImageViewTarget,默认动画不起作用.
三个问题:
为什么这两种方法有区别?
wrap_content在使用第一种方法时,如何使ImageView 有用?
如何在使用时启用默认动画BitmapImageViewTarget?
我有一个Activity,我在中初始化一个类成员变量onCreate()。在某些情况下,我需要这样做,startActivity()这意味着它将Activity变成停止状态。当我回来时,我需要使用变量。
这在大多数手机上都可以正常工作,但是由于该成员已经null在他们的手机上了,所以我也从用户那里崩溃了。这个成员只包含一些String和一个POJO。
Android是否清理Activity的成员变量以释放内存?
我需要禁用BrowseFragment中的标头,然后添加到ArrayObjectAdapter卡。当我做一个setHeadersState(HEADERS_DISABLED)应用程序时会崩溃。如果我setHeadersState(HEADERS_DISABLED)稍后运行方法,例如在onLoadFinished,应用程序不会崩溃,但标题栏立即可见然后隐藏,而不是每次在适配器中显示项目时。
MainFragment.class
\n\n public class MainFragment extends BrowseFragment implements LoaderManager.LoaderCallbacks<List<Module>> {\n private static final int MODULES_LOADER_ID = 100;\n private ArrayObjectAdapter mRowsAdapter;\n @Override\n public void onActivityCreated(Bundle savedInstanceState) {\n super.onActivityCreated(savedInstanceState);\n setupUIElements();\n setupRowAdapter();\n setupListeners();\n getLoaderManager().initLoader(MODULES_LOADER_ID, null, this);\n }\n private void setupUIElements() {\n setTitle(getActivity().getString(R.string.app_name));\n setBadgeDrawable(getResources().getDrawable(R.drawable.title, getActivity().getTheme()));\n setHeadersTransitionOnBackEnabled(false);\n setBrandColor(getActivity().getResources().getColor(R.color.fastlane_background));\n setHeadersState(HEADERS_DISABLED);\n }\n private void setupRowAdapter() {\n mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());\n setAdapter(mRowsAdapter);\n }\n private void setupListeners() {\n setOnItemViewSelectedListener(new ItemViewSelectedListener());\n setOnItemViewClickedListener(new ItemViewClickedListener());\n }\n private void loadModules(List<Module> …Run Code Online (Sandbox Code Playgroud) 我' Volley用来做互联网请求.我认为该onResponse方法只应在收到响应时调用一次,但我发现它被调用了两次.
这是我的代码:
YVolley.getInstance(context).getImageLoader().get(category.child.get(i).icon, new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
Drawable drawable = new BitmapDrawable(context.getResources(), response.getBitmap());
drawable.setBounds(0, 0, GeneralUtil.dip2px(context, 45), GeneralUtil.dip2px(context, 45));
button.setCompoundDrawables(null, drawable, null, null);
Log.i("swifter", "get icon ... success == "+url);
}
@Override
public void onErrorResponse(VolleyError error) {
Log.i("swifter", "get drawable icon error...");
}
});
Run Code Online (Sandbox Code Playgroud)
"成功"日志打印两次.
我的代码有问题还是应该是这样的?
我需要定义一个自定义的RecyclerView和RecyclerView.Adapter.RecyclerView没问题,但我不知道如何定义RecyclerView.Adapter的子类,因为它是Generic类型.
这是我的代码,Android Studio显示意外绑定.
public static abstract class Adapter<VH> extends RecyclerView.Adapter<VH extends RecyclerView.ViewHolder>
Run Code Online (Sandbox Code Playgroud) 这是可能的布局xml:
<RelativeLayout
android:id="@+id/seek_bar_wrapper"
android:layout_width="match_parent"
android:layout_height="200dip">
<SeekBar
android:id="@+id/seek_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="20dip"
android:maxHeight="2dip"
android:minHeight="2dip"
android:progressDrawable="@drawable/drawable_seekbar_progress"
android:thumb="@drawable/drawable_seekbar_thumb" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我将设置OnClickListener为RelativeLayout。奇怪的是,当我触摸时RelativeLayout,SeekBar就像按动它一样,当按下状态时,它的拇指成为可绘制对象。我认为状态变得紧迫。
这是一个错误,如何解决?
我在中添加了AnimatorListenerAdapter一个ValueAnimator,但我需要ValueAnimator在它运行时停止。
我尝试过ValueAnimator.cancel()或ValueAnimator.stop(),它们都可以停止动画制作器,但是AnimatorListenerAdapter.onAnimationEnd()我不希望这样调用。
ValueAnimator.pause() 可以,但是只能在api 19以上,所以我不能使用它;
无论如何我还能做到吗?
BroadcastReceiver我的应用程序中有一个,其定义AndroidManifest.xml如下:
<receiver android:name=".receiver.MyTaskReceiver">
<intent-filter>
<action android:name="xxx.xxx.xxx" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
这是MyTaskReceiver代码:
public class MyTaskReceiver extends BroadcastReceiver {
private ReceiverListener listener ;
@Override
public void onReceive(Context context, Intent intent) {
//do general things
if(listener != null) {
listener.received(); //do special things if the listener is setted up.
}
}
public void setListener(ReceiverListener listener) {
this.listener = listener;
}
public interface ReceiverListener {
void received();
}
}
Run Code Online (Sandbox Code Playgroud)
当接收者有意图时,我会先做一些一般的事情,比如保存数据...
但是如果向用户显示指定的活动,我需要更改活动的视图,因此我使用它ReceiverListener来执行此操作.设置一个监听器MyTaskReceiver中onCreate,并设置null在onDestroy …
android ×10
java ×2
android-tv ×1
android-view ×1
imageview ×1
lambda ×1
leanback ×1
retrolambda ×1