我正在尝试在按钮上创建一个图像(作为背景)并动态添加,具体取决于运行时发生的情况,图像上方/上方的一些文本.
如果我使用ImageButton我甚至没有可能添加文本.如果我使用,Button我可以添加文本,但只定义具有此处android:drawableBottom定义的XML属性的图像.
然而,这些属性仅在x和y维度中组合文本和图像,这意味着我可以在文本周围绘制图像,但不能在我的文本下方/下方(z轴定义为从显示中出来).
有关如何做到这一点的任何建议?一个想法是扩展Button或ImageButton覆盖draw()-method.但凭借我目前的知识水平,我真的不知道如何做到这一点(2D渲染).也许有经验的人知道解决方案或至少有一些指针可以开始?
我有ViewPager,在它下面我有10个按钮.通过单击按钮,例如#4,寻呼机立即转到第4页mPager.setCurrentItem(3);.但是,我想通过水平手指滑动来禁用分页.因此,寻呼完成仅通过点击按钮.那么,我怎么能用手指禁用滑动?
在XML中,我们可以通过textColor属性设置文本颜色,例如android:textColor="#FF0000".但是如何通过编码来改变它呢?
我尝试过类似的东西:
holder.text.setTextColor(R.color.Red);
Run Code Online (Sandbox Code Playgroud)
哪里holder只是一个类,text是类型TextView.红色是以字符串形式设置的RGB值(#FF0000).
但它显示的是不同的颜色而不是红色.我们可以在setTextColor()中传递什么样的参数?它说int,在文档中,它是资源参考值还是其他任何东西?
我的程序在后台线程中执行一些网络活动.在开始之前,它会弹出一个进度对话框.该对话框在处理程序上被关闭.这一切都很好,除非在对话框启动时屏幕方向发生变化(后台线程正在运行).此时,应用程序崩溃或死锁,或进入一个奇怪的阶段,在应用程序完全无法工作之前,直到所有线程都被杀死.
如何优雅地处理屏幕方向变化?
下面的示例代码大致匹配我的真实程序:
public class MyAct extends Activity implements Runnable {
public ProgressDialog mProgress;
// UI has a button that when pressed calls send
public void send() {
mProgress = ProgressDialog.show(this, "Please wait",
"Please wait",
true, true);
Thread thread = new Thread(this);
thread.start();
}
public void run() {
Thread.sleep(10000);
Message msg = new Message();
mHandler.sendMessage(msg);
}
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mProgress.dismiss();
}
};
}
Run Code Online (Sandbox Code Playgroud)
堆:
E/WindowManager( 244): Activity MyAct has …Run Code Online (Sandbox Code Playgroud) 我是Android的新手.我阅读了Android文档,但我仍需要进一步澄清.谁能告诉我究竟PendingIntent是什么?
如何在android中以编程方式获取屏幕密度?
我的意思是:如何找到当前设备的屏幕dpi?
这个INSTALL_FAILED_INSUFFICIENT_STORAGE错误是每个Android开发人员生活中的祸根.无论应用程序大小或可用存储空间如何,都会发生这种情况.重新启动目标设备可以简单地解决问题,但很快就会回来.有数百个(如果不是数千个)消息板帖子来自人们询问问题发生的原因,但谷歌的人们对这个问题感到沮丧.
有一个简单的解决方法.如果您的测试设备运行的是Android 2.2或更高版本,则android:installLocation使用该值将该属性添加到应用程序的清单文件中"preferExternal".这将强制将应用程序安装在设备的外部存储设备上,例如手机的SD卡.
例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.andrewsmith.android.darkness"
android:installLocation="preferExternal"
Run Code Online (Sandbox Code Playgroud)
这更像是一个创可贴,而不是一个修复,如果您希望您的已完成的应用程序安装在设备的内部存储器上,它可能并不理想.但它至少会让开发过程变得更加令人沮丧.