我想我的应用程序只运行移动设备而不是
平板电脑10和7英寸
.但我的应用程序是在两个平板电脑大小运行.请帮助我
我正在尝试在现有View中添加自定义XML属性
将它们添加到自定义视图并不是一件大事,但我不知道如何在"基本"视图中访问这些属性(例如TextView,LinearLayout,ImageView ......)
当涉及片段和/或图书馆项目时,这将更加困难
到目前为止,这是我的代码
海关属性定义和XML(attrs.xml和布局):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
<attr name="jedi" format="string" />
<attr name="rank" format="string" />
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sw="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
android:gravity="center_horizontal"
sw:jedi="Obiwan" />
<TextView
android:id="@+id/rank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
android:gravity="center_horizontal"
sw:rank="Master" />
Run Code Online (Sandbox Code Playgroud)
因为我在片段上膨胀这个(所以没有onCreate与attrs arg!),尝试获得2个sw自定义属性的唯一方法是:
将自定义LayoutInflater.Factory设置为onCreateView中的Fragment LayoutInflater
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
LayoutInflater layoutInflater = inflater.cloneInContext(inflater.getContext());
layoutInflater.setFactory(new StarWarsLayoutFactory());
View fragmentView = layoutInflater.inflate(R.layout.jedi, container, false);
((TextView) fragmentView.findViewById(android.R.id.jedi)).setText("Yep");
return fragmentView;
}
Run Code Online (Sandbox Code Playgroud)尝试在自定义LayoutInflater.Factory上获取自定义属性:
public class StarWarsLayoutFactory …Run Code Online (Sandbox Code Playgroud)android android-xml android-fragments android-view android-custom-attributes
我在我的Android应用程序中使用导航抽屉.
由于这是一个我觉得很难发现的模式,我的计划是在屏幕底部添加一条消息,直到用户最终发现它并通过滑动成功打开它.
我知道我可以使用:
public void onDrawerOpened(View drawerView) {
// Stop telling the user, he know how it works
}
Run Code Online (Sandbox Code Playgroud)
但是当使用ActionBar中的左上角按钮打开它时也会触发此操作.
我们热烈欢迎任何检测成功刷卡的建议.
在构建我的android项目时,我已将以下内容添加到build.gradle文件中以启用proguard:
buildTypes {
release {
runProguard true
proguardFile 'proguard-project.txt'
proguardFile '../common/proguard-shared.txt'
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
Run Code Online (Sandbox Code Playgroud)
一切都建立好但是当我反汇编生成的dex文件时,事实证明混淆和非混淆的文件都在那里.
例如,common.Base64和common.a都存在,第一个是非混淆的,而第二个是.
不确定它的相关性,但项目本身有一个非典型的结构.这是我们拥有超过40个Android应用程序的大型Android代码库的结果.我们正在尝试创建一个基于gradle的构建流程,它与现有的基于eclipse的构建并行.
如果一切顺利,我们打算将文件结构更改为更本机的gradle,并开始使用flavor和build-types来包含我们创建的许多库以适应缺乏风味等.
上面的项目E依赖于这样的一系列库:
E - > D - > C - > B - > A.
例如,E项目取决于库D,它依赖于库C ...一直到A.
我想在我的Android库的发布版本上运行ProGuard.以下是build.gradle我的项目中的文件.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行gradlew clean或gradlew build返回以下错误:
> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project …
android proguard gradle android-library android-gradle-plugin
我想自定义我的应用程序,我已应用主题,但选项菜单似乎不适用我的主题.
我希望我的文字颜色为白色,背景为黑色,突出显示/选中的菜单项为黄色.这是我的theme.xml:
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name="android:actionMenuTextColor">@color/application_color5</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabs</item>
<item name="android:selectableItemBackground">@drawable/icone_barratopo_selector</item>
<item name="android:actionBarItemBackground">@drawable/icone_barratopo_selector</item>
<item name="android:selectableItemBackground">@drawable/icone_barratopo_selector</item>
<!-- Panel attributes -->
<!-- <item name="android:panelBackground">@drawable/selectable_background</item> --
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
<item name="actionMenuTextColor">@color/application_color5</item>
<item name="actionBarTabStyle">@style/MyActionBarTabs</item>
<item name="selectableItemBackground">@drawable/icone_barratopo_selector</item>
<item name="actionBarItemBackground">@drawable/icone_barratopo_selector</item>
<item name="selectableItemBackground">@drawable/icone_barratopo_selector</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/background_barratopo_superior</item>
<item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
<!-- Support library compatibility -->
<item name="background">@drawable/background_barratopo_superior</item>
<item name="titleTextStyle">@style/MyActionBarTitleText</item>
</style>
<!-- ActionBar title text -->
<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/application_color2</item>
</style>
<!-- …Run Code Online (Sandbox Code Playgroud) 我有一个在Eclipse中创建的Android项目,导出为Gradle构建文件,然后在Android Studio中打开.(是的,在AS中创建一个干净的项目要容易得多,但我需要支持当前的项目结构.)
否则事情现在大部分都在起作用,但仍有一些东西需要解决.在每个Activity类中,AS都显示以下错误:Class requires API level 1 (current min is -1): Activity

Alt + Enter提议用@TargetApi注释修复它...但为什么我必须这样做,当AndroidManifest.xml我们有,我们有:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml位于项目根目录(Eclipse默认?).看起来Android Studio无法正确读取其中的设置.该项目仍然编译好.
知道如何摆脱错误吗?
Eclipse生成的内容build.gradle如下所示:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src'] …Run Code Online (Sandbox Code Playgroud) 这与"卸载旧的Android SDK版本"有关,除了我想在无头的Linux CI服务器(磁盘空间不足)上执行此操作.
android命令行工具是否提供了删除SDK旧部分的选项?通过快速查看,它可以删除的唯一内容是AVD.我忽略了什么吗?
或者,我想我可以手动删除SDK_HOME下的内容.但删除哪些东西是安全的?其他候选人比这些?
platforms/喜欢android-3和的东西android-4.docs(800MB),samples(300MB)system-images?我是否需要例如android-18/armeabi-v7a/,android-18/x86/如果我只想使用Gradle(和Ant)进行自动APK构建(没有模拟器的东西)?至少在docs完全删除时,下次我运行时android update sdk --no-ui,它再次开始取回它们:
Downloading Documentation for Android SDK, API 19, revision 1
Run Code Online (Sandbox Code Playgroud)
我可以避免update添加我扔掉的SDK部分吗?
免责声明:是的,磁盘很便宜,我真的应该添加更多.但是现在这个特定的服务器(8.5G磁盘)我没有那个选项,但我还是想让它运行Android 19版本...
我是android的新手.在android中我想在textview中显示当前时间,格式为hh:mm am/pm(例如:3:02 PM)我使用以下代码.
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
tv.setText(currentDateTimeString);
它给出了当前的日期,月份,年份和时间.但我只需要从中获取当前时间.有没有办法只显示时间?任何人都可以帮我从上面的代码中获取没有日期的时间.[using DateFormat.getDateTimeInstance()]
当我RequestMapping在Spring MVC中配置我的s时,我想Allow在使用该OPTIONS方法时自动生成正确的头.
例如,使用此控制器:
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping(method = RequestMethod.GET)
ResponseEntity<String> getTest() {
return new ResponseEntity<>("test", HttpStatus.OK);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我OPTIONS对该URL 发出请求,我会得到405,方法不允许.相反,我希望它能自动回复
Allow: GET, OPTIONS 和 204 - No content
我有一个想法添加拦截器,如下所示:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if("OPTIONS".equalsIgnoreCase(request.getMethod())){
response.setHeader("Allow", "GET, OPTIONS");
response.setStatus(204);
//TODO figure out the @Controller and what possible methods exist
return false;
}
return …Run Code Online (Sandbox Code Playgroud) android ×9
gradle ×3
java ×2
proguard ×2
android-menu ×1
android-view ×1
android-xml ×1
build ×1
command-line ×1
date-format ×1
google-play ×1
spring ×1
spring-mvc ×1
swipe ×1
tablet ×1