我参考http://developer.android.com/guide/practices/ui_guidelines/icon_design.html#icon-sets上的文档
因此,我计划拥有以下目录结构.
res/
drawable/
icon.png (? x ? px)
drawable-ldpi/
icon.png (36x36 px)
drawable-mdpi/
icon.png (48x48 px)
drawable-hdpi/
icon.png (72x72 px)
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何文档,提到默认启动器图标大小的大小.
我可以知道默认的启动器图标大小应该是多少?
我指的是这个代码示例,该示例在http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6254531中报告
import java.net.URL;
class Loader {
public static void main(String[] args) throws Exception {
for (;;) {
System.gc();
System.out.print(".");
System.out.flush();
new java.net.URLClassLoader(
new URL[] { new java.io.File(".").toURL() },
ClassLoader.getSystemClassLoader().getParent()
).loadClass("Weakling").newInstance();
}
}
}
public class Weakling {
private static ThreadLocal<Object> local;
private static Weakling staticRef;
private Object var = new byte[1000*1000];
public Weakling() {
local = new ThreadLocal<Object>();
local.set(this);
staticRef = this;
}
@Override
protected void finalize() {
System.out.print("F");
System.out.flush();
}
}
Run Code Online (Sandbox Code Playgroud)
永远不会调用finalize.但是,如果我改变了
new java.net.URLClassLoader(
new URL[] { …Run Code Online (Sandbox Code Playgroud) 我有一个JTable如下.

因此,当JTable仍处于编辑模式时(在Dividend列上有一个键盘光标闪烁),直接单击OK将不会将数据提交到表模型中.单击"确定"仅关闭对话框.
我需要显式按ENTER键,以便将数据提交到表模型中.
虽然JTable仍然处于编辑模式,但在关闭对话框之前,有什么方法可以告诉JTable说:"嘿,是时候将更改提交到模型中"
此对话框的源代码如下对话框源代码.jButton1ActionPerformed按下确定时,请查看执行的代码.
我从NetBeans IDE收到以下警告.
Suspicious call to java.util.Collection.contains
Expected type T, actual type Object
Run Code Online (Sandbox Code Playgroud)
我知道这意味着什么吗?
这对我来说没有意义.Both List和Collectionclass的contains方法都使用Object作为它们的方法参数.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
*
* @author yan-cheng.cheok
*/
public abstract class AbstractCollection<T> implements Collection<T> {
protected List<T> list = new ArrayList<T>();
public boolean contains(Object o) {
// Suspicious call to java.util.Collection.contains
// Expected type T, actual type Object
return list.contains(o);
}
Run Code Online (Sandbox Code Playgroud)
Collection类的代码片段
/**
* Returns <tt>true</tt> if this collection contains the specified element.
* …Run Code Online (Sandbox Code Playgroud) 我故意让自己的应用程序崩溃.我得到以下对话框.

但是,我希望通过报告按钮获得以下崩溃对话框.

我可以知道怎么做吗?我签了申请.(但我将APK本地转移到我的手机,而不是通过Android市场).我仍然无法得到Report按钮.
我有一个Parcelable对象,我用它将它从Activity传递给远程服务.当我使用AIDL界面传递它时,一切听起来都很好.
最近,我尝试通过Activity 传递Messenger.
// TEST TEST TEST!
StockInfo stockInfo0 = new StockInfo(Code.newInstance("code0"), Symbol.newInstance("symbol0"));
StockInfo stockInfo1 = new StockInfo(Code.newInstance("code1"), Symbol.newInstance("symbol1"));
StockInfo stockInfo2 = new StockInfo(Code.newInstance("code2"), Symbol.newInstance("symbol2"));
List<StockInfo> stockInfos = new ArrayList<StockInfo>();
stockInfos.add(stockInfo0);
stockInfos.add(stockInfo1);
stockInfos.add(stockInfo2);
StockInfosEx stockInfosEx = new StockInfosEx(stockInfos, "abc");
msg.obj = stockInfosEx;
try {
mService.send(msg);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我在远程服务中遇到以下异常.
02-21 22:55:16.546:E/Parcel(8365):解组时找不到类:com.example.testonmessenger.StockInfosEx,e:java.lang.ClassNotFoundException:com.example.testonmessenger.StockInfosEx
我在想,两者之间有什么问题?这是我的Parcelable对象.
public class StockInfosEx implements Parcelable {
public final List<StockInfo> stockInfos;
public final String searchedString;
public …Run Code Online (Sandbox Code Playgroud) 我意识到,如果我申请android:stateListAnimator上RecylerView的项目,通话adapter.notifyDataSetChanged会造成一些意想不到的闪烁效果RecylerView的项目(并非所有项目,奇怪)
这是我的RecylerView项目
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:stateListAnimator="@anim/lift_up"
android:background="@drawable/white" >
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
@anim/lift_up 被定义为
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="true"
android:state_pressed="true">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="8dip"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="4dip"
android:valueType="floatType" />
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
并被@drawable/white定义为
<drawable name="white">#ffffffff</drawable>
Run Code Online (Sandbox Code Playgroud)
当我打电话时adapter.notifyDataSetChanged,RecylerView的最后5个项目发生以下奇怪的闪烁效果.(屏幕上共有10个可见项目)
此问题仅发生在API 21及更高版本,因为只有API 21支持 android:stateListAnimator
这是一个错误,还是我错过了一些东西?
完整的最小可行代码可以从https://github.com/yccheok/RecyclerViewTutorial/tree/4763879598864233a8e6544fe240c3fb34a15b73下载
我尝试用来padding增加按钮的触摸区域.我用
<ImageButton
android:paddingRight="32dp"
android:paddingEnd="32dp"
android:id="@+id/confirm_image_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="?selectableItemBackgroundBorderless"
android:src="?attr/confirmIcon" />
Run Code Online (Sandbox Code Playgroud)
点击区域是放大的.但是,selectableItemBackgroundBorderless点击效果不再显示为完美的圆圈.
我尝试用duplicateParentState技术来克服.
<FrameLayout
android:clickable="true"
android:paddingRight="32dp"
android:paddingEnd="32dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<ImageButton
android:duplicateParentState="true"
android:id="@+id/confirm_image_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?selectableItemBackgroundBorderless"
android:src="?attr/confirmIcon" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
现在,
selectableItemBackgroundBorderless圆的效果是一个完美的圆.但是,它似乎有一些奇怪的行为.单击实际区域时ImageButton,不显示圆按效果.
我可以知道为什么会这样,我怎么能克服它?我使用API 26进行了测试.
注意,我试图避免使用TouchDelegate技术,除非我被迫,因为它使我们的代码更复杂.
以下是按钮显示的正确行为Toolbar.
当点击区域位于按钮外时,会显示波纹效果
当点击区域在按钮内时,会显示波纹效果
但是,我不知道他们是如何实现这种行为的.
android android-layout android-view android-drawable rippledrawable
我有以下一次性工作人员.
// Create a Constraints that defines when the task should run
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresBatteryNotLow(true)
// Many other constraints are available, see the
// Constraints.Builder reference
.build();
OneTimeWorkRequest oneTimeWorkRequest =
new OneTimeWorkRequest.Builder(SyncWorker.class)
.setConstraints(constraints)
.addTag(SyncWorker.TAG)
.build();
Run Code Online (Sandbox Code Playgroud)
根据https://developer.android.com/topic/libraries/architecture/workmanager
// (Returning RETRY tells WorkManager to try this task again
// later; FAILURE says not to try again.)
Run Code Online (Sandbox Code Playgroud)
我想知道,如果SyncWorker继续回来RETRY,重试策略是WorkManager什么?例如,最大重试次数是WorkManager多少?文档不清楚.
这方面的文档不多。我在想,我们应该先打电话
RequestConfiguration conf= new RequestConfiguration.Builder()
.setMaxAdContentRating(
MAX_AD_CONTENT_RATING_T)
.build();
MobileAds.setRequestConfiguration(conf);
MobileAds.initialize(context, APP_ID);
Run Code Online (Sandbox Code Playgroud)
或者
MobileAds.initialize(context, APP_ID);
RequestConfiguration conf= new RequestConfiguration.Builder()
.setMaxAdContentRating(
MAX_AD_CONTENT_RATING_T)
.build();
MobileAds.setRequestConfiguration(conf);
Run Code Online (Sandbox Code Playgroud)
在https://developers.google.com/admob/android/quick-start
虽然谷歌建议MobileAds.initialize尽早打电话
在加载广告之前,让您的应用通过调用 MobileAds.initialize() 来初始化移动广告 SDK,这会初始化 SDK 并在初始化完成后(或在 30 秒超时后)回调完成侦听器。这只需执行一次,最好是在应用程序启动时执行。
他们还提到需要在MobileAds.initialize.
警告:在调用 MobileAds.initialize() 时,移动广告 SDK 或中介合作伙伴 SDK 可能会预加载广告。如果您需要获得欧洲经济区 (EEA) 用户的同意、设置任何特定于请求的标志(例如 tagForChildDirectedTreatment 或 tag_for_under_age_of_consent),或者在加载广告之前采取其他措施,请确保在初始化移动广告 SDK 之前这样做。
所以,不是很清楚应该先调用哪个。