如果我已经定义了一个Activity:
public class DialogActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(dialog_activity.xml);
}
}
Run Code Online (Sandbox Code Playgroud)
我想像对话框一样显示上面的活动,所以在AndroidManifest.xml文件中,我声明这个活动如下:
<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"/>
Run Code Online (Sandbox Code Playgroud)
此时一切都很好,我DialogActivity表现为对话.
问题是如何自定义宽度和高度DialogActivity使其更像一个小对话框?(目前它默认占据大部分屏幕)
----------------------------更新--------------------- -
我定义了一个自定义主题如下:
<style name="myDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:width">100dip</item>
<item name="android:height">100dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,DialogActivity在AndroidManifest.xml中声明为.
<activity android:name=".DialogActivity" android:theme="@style/myDialog"/>
Run Code Online (Sandbox Code Playgroud)
我DialogActivity现在甚至占据整个屏幕:(.宽度和高度定义:
<item name="android:width">100dip</item>
Run Code Online (Sandbox Code Playgroud)
在主题上没有任何效果,为什么?
android android-widget android-manifest android-emulator android-layout
我想将自定义属性添加到AndroidManifest.xml文件的应用程序标记中.这在Android环境中是否可行?
我正在开发一个Android应用程序,我必须打开一些文件.
这是我使用intent的代码:
public class FacturaActivity extends Activity {
(...)
public void downloadInvoice(View view) {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
文件位于SD卡的根目录中,我可以手动打开它.
问题
应用程序在到达startActivity(intent)时关闭.我认为问题出在AndroidManifest.xml文件中,但我不知道如何正确使用它.
AndroidManifest.xml中
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="###.MyApplication" > <!--cant show complete name-->
<activity
android:name="###.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".FacturaActivity" >
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
logcat的
07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: …Run Code Online (Sandbox Code Playgroud) AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.m.e"
android:versionCode="5"
android:versionName="3.0">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.m.e"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action
android:name="android.intent.action.MAIN"
/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.m.e"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action
android:name="android.intent.action.first"
/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
.....
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
错误:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.m.e/.Splash }
Error type 3
Error: Activity class {com.m.e/com.m.e.Splash} does not exist.
Run Code Online (Sandbox Code Playgroud)
注意: .Splash 确实存在.
我在Android应用中使用Google Analytics,效果很好.将SDK(google play服务)更新为当前版本(6587000)后,应用程序会在启动时挂起以下第8行,共10次:
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Run Code Online (Sandbox Code Playgroud)
控制台中没有错误.我也添加了成就和排行榜,但首先调用了Analytics.我也改变了上下文,但这有时有效,有时则无效.
我获得可重现结果的唯一一次是,当我从AndroidManifest.xml中删除以下行时.然后在启动时不再冻结.
<meta-data
android:name="com.google.android.gms.analytics.globalConfigResource"
android:resource="@xml/analytics_global_config" />
Run Code Online (Sandbox Code Playgroud)
但我的配置是正确的:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="ga_appName">TestAppName</string>
<string name="ga_appVersion">Version1.0</string>
<string name="ga_logLevel">verbose</string>
<integer name="ga_dispatchPeriod">1000</integer>
<bool name="ga_dryRun">true</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
如果我更改配置,则会产生相同的结果:应用程序在启动时冻结的10次中有8次.
有人知道问题是什么或者我可以检查什么以使我的应用程序再次运行而不会在启动时冻结?
我想在安装我的应用程序后立即在主屏幕上创建应用程序的快捷方式/启动器图标(甚至在我开始之前).那可能吗?我怎么能这样做?
我注意到,当我在build.gradle文件中使用以下内容时,会自动添加以下权限
compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)
早期版本的播放服务不会出现这种情况.有没有人有解决方案来删除这些不需要的权限?
我只使用广告功能(INTERNET和ACCESSNETWORK_STATE).我不需要LOCATION和USE_CREDENTIALS权限.如何删除这些不需要的权限?
我注意到'manifest-merger-xxx-debug-report.txt'文件包含以下内容
...<snipped bunch of other merges>
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22
uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22
uses-feature#0x00020000
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
android:glEsVersion
ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8
android:required
ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE
uses-permission#android.permission.GET_ACCOUNTS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22
uses-permission#android.permission.USE_CREDENTIALS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 …Run Code Online (Sandbox Code Playgroud) android android-manifest admob android-permissions google-play-services
出于商业原因,我想将我的Android应用程序严格限制为平板电脑设备.
目前,我可以通过设置以下内容将应用限制为Honeycomb设备:
android:minSdkVersion="11"
Run Code Online (Sandbox Code Playgroud)
但下一版Android(冰淇淋三明治)的平板电脑和手机版本的操作系统版本号都会更高.
是否有任何清单属性可以指定将其限制为平板电脑设备?(Honeycomb或任何后续的平板电脑版本)
在将我的ADT插件更新到版本17后,我正在接受警告按摩说
避免硬编码调试模式; 将其删除允许调试和发布版本自动分配一个
在更新之前没有这样的消息.
如何避免此警告消息?
在我的项目上运行Android Lint时,我遇到了这个警告
可能的透支:根元素绘制背景@ drawable/main,主题也绘制背景
推断主题在哪里 @android:style/Theme.NoTitleBar.Fullscreen
有人可以向我解释为什么会这样,以及如何删除它?
我的xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/main" //***LINT warning***
android:orientation="vertical"
android:weightSum="3" >
Run Code Online (Sandbox Code Playgroud)
清单中定义主题的部分
<application
android:icon="@drawable/ic_logo"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
Run Code Online (Sandbox Code Playgroud) android ×10
android-manifest ×10
admob ×1
eclipse-adt ×1
file ×1
google-play ×1
homescreen ×1
launcher ×1
pdf ×1