我今天通过Eclipse更新了ADT到21版.现在当我打开SDK Manager时,我希望有一个像"Android 4.2(API 17)"这样的文件夹,其中包含SDK平台和API,文档等.但是,相反,我只得到一个名为"API 17"的文件夹,其中唯一的东西是"Google API",我甚至无法安装,因为
安装此软件包还需要安装: - 缺少SDK平台Android,API 17
我该怎么办?谢谢
好的,我的应用程序中有一个整数变量.这是一种颜色的值,由我喜欢的颜色选择器设置.现在,我需要使用它的颜色和任何颜色的深色版本.
现在我知道在标准Java中有一个Color.darker()方法,但在Android中似乎没有相应的东西.有谁知道等效或任何变通方法?
好吧,我对这个失去了理智.我的程序中有一个解析HTML的方法.我想要包含内嵌图像,我的印象是使用Html.fromHtml(字符串,Html.ImageGetter,Html.TagHandler)将允许这种情况发生.
由于Html.ImageGetter没有实现,所以由我来编写一个.但是,由于将URL解析为Drawables需要网络访问,我不能在主线程上执行此操作,因此它必须是AsyncTask.我认为.
但是,当您将ImageGetter作为参数传递给Html.fromHtml时,它使用必须重写的getDrawable方法.因此无法调用触发doInBackground方法的整个ImageGetter.execute事务,因此无法实际实现此异步.
我是否完全错了,或者更糟糕的是,这是不可能的?谢谢
我正在尝试将一块HTML加载到TextView中,包括图像,使用
URLImageParser p = new URLImageParser(articleBody, this);
Spanned htmlSpan = Html.fromHtml(parsedString, p, null);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,parsedString是HTML.无论如何,它加载,但图像没有创建任何空间供他们坐下,所以他们最终重叠他们上面的文本.这是我的URLImageParser文件:
public class URLImageParser implements Html.ImageGetter {
Context c;
View container;
/***
* Construct the URLImageParser which will execute AsyncTask and refresh the container
* @param t
* @param c
*/
public URLImageParser(View t, Context c) {
this.c = c;
this.container = t;
}
public Drawable getDrawable(String source) {
URLDrawable urlDrawable = new URLDrawable();
// get the actual source
ImageGetterAsyncTask asyncTask =
new ImageGetterAsyncTask( urlDrawable);
asyncTask.execute(source);
// …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我正在进行现代化.此过程的一个步骤是更改为基于片段的布局(使用支持库中的片段).我将我的活动转换为碎片,并使布局运行良好(使用ViewPager,很棒的东西!)
我正在让我的活动实现OnClickListener以满足我所有的按钮需求.我当然有新的Fragment化身做同样的事情,但看起来"onClick"永远不会被击中.碎片有什么特别之处可以防止它们以这种方式工作吗?
我写了一个应该是4x2主屏幕块的小部件.这是minheight和minwidth,根据当前的"App Widget Design Guidelines"页面
android:minWidth="250dp"
android:minHeight="110dp"
Run Code Online (Sandbox Code Playgroud)
如果系统版本低于Ice Cream Sandwich,则应从dimens.xml应用填充
在我的Nexus 4(xhdpi,Jellybean 4.2.1)上,这个小部件是4x2.在模拟器(hdpi,Gingerbread 2.3.3)上,这个小部件是4x2.然而,在我的Nexus 7(hdpi,Jellybean 4.2.1)上,小部件是3x2.我不能为我的生活弄清楚为什么或如何解决它.有什么想法吗?
好的,所以我正在开发一个AppWidget来检查电池电量并将其显示在TextView上.我的代码看起来像这样:
public class BattWidget extends AppWidgetProvider {
private RemoteViews views = new RemoteViews("com.nickavv.cleanwidgets", R.layout.battlayout);
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) {
final int N = appWidgetIds.length;
context.getApplicationContext().registerReceiver(this,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Log.d("onReceive", "Received intent " + intent);
if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
Integer level = intent.getIntExtra("level", -1);
views.setTextViewText(R.id.batteryText, level+"%");
AppWidgetManager myAWM = AppWidgetManager.getInstance(context);
ComponentName …Run Code Online (Sandbox Code Playgroud) 我正在为已完成的已发布的Android应用添加AdMob广告(比如快五倍).我添加了AdMob附带的PDF代码,按照他们对T恤的说明.测试广告在我的模拟器和指定的测试设备上显示正常.当您下载并运行它们时,它们不会出现在已发布的市场应用程序中.不过,我仍会在AdMob页面上留下印象.有任何想法吗?
嘿.我的应用程序将使用64个ImageButtons(8x8)的数组,并且它们都已在我的XML布局中声明,其名称类似于one1,two5,eight8等.而不是在我的Java中单独声明它们我认为它可能很聪明地在一些for循环中声明它们.我有
ImageButton musicGrid[][] = new ImageButton [8][8];
Run Code Online (Sandbox Code Playgroud)
然后我有我的嵌套for循环,它基本上创建了一个代替R.id.whatever的字符串.它只是我循环中的最后一行,应该进行分配.它的正确语法是什么,或者甚至不可能做到(如果是这样,我将如何更好地处理64按钮网格?).谢谢!
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
String btnID = "R.id.";
switch(i) {
case 0: btnID.concat("one"); break;
case 1: btnID.concat("two"); break;
case 2: btnID.concat("three"); break;
case 3: btnID.concat("four"); break;
case 4: btnID.concat("five"); break;
case 5: btnID.concat("six"); break;
case 6: btnID.concat("seven"); break;
case 7: btnID.concat("eight"); break;
}
switch(j) {
case 0: btnID.concat("1"); break;
case 1: btnID.concat("2"); break;
case 2: btnID.concat("3"); …Run Code Online (Sandbox Code Playgroud) 所以,我有一个小部件,我希望它每60秒更新一次.当小部件首次添加到主屏幕时,它会正常运行其更新功能.除此之外,它应该启动一个AlarmManager,它将每60秒重新运行一次更新方法.这是它似乎没有真正做的部分.这是我的代码:
public class ClockWidget extends AppWidgetProvider {
public static String CLOCK_WIDGET_UPDATE = "com.nickavv.cleanwidget.CLEANCLOCK_UPDATE";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.clocklayout);
appWidgetManager.updateAppWidget(appWidgetId, views);
updateAppWidget(context, appWidgetManager, appWidgetId);
}
}
public static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
Log.d("log","Entered update cycle");
//Unimportant for these purposes
appWidgetManager.updateAppWidget(appWidgetId, views);
}
private PendingIntent createClockTickIntent(Context context) { …Run Code Online (Sandbox Code Playgroud) android ×10
html-parsing ×2
admob ×1
alarmmanager ×1
arrays ×1
battery ×1
colors ×1
drawable ×1
imagebutton ×1
java ×1
sizing ×1
spanned ×1
textview ×1
widget ×1