我已经做了一些关于构建适用于多种屏幕尺寸的布局的研究,我正在寻找一些澄清.
通常的做法是为三种屏幕尺寸(小,中,大)中的每一种制作单独的布局文件,还是可以通过更简单的方法完成此操作?
我一直在大屏幕设备上测试我的项目,即使我使用DIP(密度无关像素)进行填充,边距等,当我在较小的屏幕上查看时,它仍然会重新填充.我应该为中型屏幕设计我的项目,然后让Android适当地扩展它吗?
我不确定这是不是一个好问题,但我正在寻找设计多种屏幕尺寸的常见做法.你是做什么?
编辑:除此之外,例如,假设我有一个位于屏幕底部40dip的按钮,我应该写40dip,还是应该使用像40*screenWidth/blahblah之类的像素数学这样根据用户的屏幕尺寸进行缩放?我对UI的经验有限......
我正在尝试从Android项目发送文件,以便我的一个朋友可以在eclipse中打开一个新的Android项目并乱用代码/从他们的家用机器运行项目.但是,我遇到了一些处理缺少清单文件和不匹配签名的问题.
捆绑Android项目(不是.apk)以发送给某人在eclipse中使用的最简单的程序是什么?
我有ActionBarActivity一个GridView.
该GridView具有纵向两列,并在景观3列.
当我选择纵向(开始我的ActionMode)项目然后旋转设备时,所选项目突出显示将一个项目向左移动. 例如,如果我选择第二个项目并旋转,则第一个项目将突出显示.如果我选择第一个项目并旋转,则不会突出显示任何项目.
代码中的实际选择是正确的,只是突出显示是错误的.
我注意到如果我将numColumns保持为纵向和横向相同,它就不会这样做.
我相信这个问题是在我将我的活动改为之后开始发生的,ActionBarActivity所以它可能是一个错误.
任何人都知道为什么或如何解决它?
我已经阅读了关于从活动传递数组的帖子,但我对于如何针对我的具体情况这样做感到困惑.
我有一个名为DaysWeather(DaysWeather []数组)的对象数组,其中对象具有多个String属性以及位图属性.我在某个地方看到你必须把它变成可序列化的或可以用的东西,但乍一看似乎很乱.
有人能引导我朝着正确的方向前进吗?
有一个简单的方法吗?
当发送带有ACTION_MEDIA_BUTTON意图的sendOrderedBroadcast时(我模仿用户点击蓝牙耳机上的播放按钮),Google Play音乐会打开并播放最后播放的专辑而不是前景音乐播放应用.
如果我将其更改为sendBroadcast,Google Play音乐和当前的音乐播放应用(在我的情况下为Pandora)都会制作播放按钮.
这仅发生在Android 4.0及更高版本中.Play Music是否会占用这个意图(一个错误)?您是否怀疑Pandora没有按照以下建议将自己注册为当前的媒体按钮处理程序:http: //android-developers.blogspot.com/2010/06/allowing-applications-to-play-nicer.html
有没有办法可以将此意图指向当前的音乐播放应用程序?
这是我的代码:
public void broadcastMediaIntent(MediaIntent intentType){
long eventtime = SystemClock.uptimeMillis();
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = null;
KeyEvent upEvent = null;
switch(intentType){
case NEXT:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
break;
case PLAY_PAUSE:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
break; …Run Code Online (Sandbox Code Playgroud) 我的问题是,我不确定我是否正确实现和使用我的子类.我在这里继承WebView:
public class myWebView extends WebView{
public myWebView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onSizeChanged(int w, int h, int ow, int oh) {
// TODO Auto-generated method stub
scrollTo(xScroll - (widthScroll/2), yScroll - (heightScroll/2));
super.onSizeChanged(w, h, ow, oh);
}
}}
Run Code Online (Sandbox Code Playgroud)
它应该是私人的,但暂时忘记了.我的一个活动中的代码包含在视图层次结构中的内部webview.在该活动的onCreate方法之外.
在onCreate方法中,我有:myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);
这给了我一个ClassCastException用于该调用.(xml布局文件是否需要使用<myWebView>?可以吗?)如何以正确的方式使用它?
当与http通信http://forecast.weather.gov/zipcity.php时,我需要获取从请求生成的URL.
我已从http响应消息中打印出标题及其值,但没有位置标题.我如何获得此URL?(我正在使用HttpClient)
我不确定这是否可行,但是我们已经实现了我们的一个签名者,无论是远程还是面对面(通过clientUserID在请求中包含并使用signer.EmbeddedRecipientStartURL = "SIGN_AT_DOCUSIGN";
通过这样做,签名者可以收到电子邮件,但也可以签名嵌入.
当我们修改信封(例如通过修改电子邮件主题行)并传递resendEnvelope=true给信封更新API时,它只会将新电子邮件重新发送给远程签名者.两个签名者都没有.
有没有办法解决这个问题,或者不幸的是我不得不创建一个全有或全无的电子邮件场景,其中签名者是亲自或远程手动声明的,需要由用户删除/重新添加以便在他们?
我有这些卡片上有两种颜色的色调.主色,然后是更暗的强调色:
主要颜色以十六进制给出,但不是重音.你能说出主色的ARGB正在进行什么样的混合或转换才能获得更暗的强调色?
如果它很重要,我正在开发Android,所以我可以访问Color类和ColorFilter,所以我可以应用所有的PorterDuff东西......

我最初构建了一个Android应用程序,并将所有图像都放在drawable-hdpi资源目录中,现在我要返回并进行必要的更改/添加,以便所有屏幕大小和密度都支持该应用程序.
如何拍摄我的所有图像并让它们"不那么密集"?我的第一个猜测是将它们加载到Gimp或Photoshop中并将它们缩小到更小的分辨率.这就是我需要做的吗?

我在Android中自定义HORIZONTAL ProgressBar的外观,我必须使用三个不同的图像,一个用于背景,一个用于secondaryProgress,一个用于进度.
我的猜测是背景必须是一个实际的完整条形图像以进行填充,类似于灰色条形图像,它与ProgressBar视图布局的尺寸 - 宽度和高度相匹配?
其他人怎么样?
我查看了示例,唯一的区别似乎是名称,但是当我将我的应用程序中的所有名称从TitlePageIndicator切换到TabPageIndicator时,选项卡处于混乱的对齐状态,页脚下划线消失了.
我错过了什么吗?我还需要做些什么吗?我有
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter( getSupportFragmentManager() );
ViewPager pager =
(ViewPager)findViewById( R.id.viewpager );
TabPageIndicator indicator =
(TabPageIndicator)findViewById( R.id.indicator );
pager.setAdapter( adapter );
indicator.setViewPager( pager );
Run Code Online (Sandbox Code Playgroud)
和
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp" >
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud) android ×10
image ×2
java ×2
apk ×1
bundle ×1
c# ×1
colors ×1
docusignapi ×1
eclipse ×1
http ×1
httpclient ×1
layout ×1
progress-bar ×1
subclassing ×1
tabs ×1
webview ×1