Articles of xml

可以在Android XML中创建这个简单的形状吗?

我试图在Android XML中创建以下简单形状: 只是一个矩形与三角形组合形成一个箭头。 形状应该用作导航按钮背景。 在Windows Phone上,在XAML中创建此形状是没有问题的,但Android的XML绘图function似乎更加有限。 我尝试使用普通矩形作为“body”创建一个图层列表drawable,并将矩形旋转为三角形。 只要三角形与边框对齐,通过旋转矩形创建三角形就可以正常工作。 一旦我尝试将三角形移动/平移到左侧(到主体/盒子的末尾),三角形不再是三角形,但当然只是一个旋转的矩形…有没有办法剪掉旋转矩形的一半,并将其移动到XML的框的末尾? 当然这可以在Code / Java中完成,但我想知道它是否也可能是XML。 我需要这种具有许多不同尺寸的按钮,使用XML drawable比使用几十个PNG要好得多(从我的角度来看)。

创建自定义popup对话框菜单

我正在尝试在菜单按钮上单击popup菜单,如下面的屏幕所示: 我试过popupwindow方法,但无法达到确切的情况。 这是我正在尝试的方式: private View.OnClickListener showPopupWindow() { return new View.OnClickListener() { @Override public void onClick(View v) { PopupWindow popUp = popupWindowsort(); popUp.showAsDropDown(v, 1, 1); // show popup like dropdown list } }; } private PopupWindow popupWindowsort() { // initialize a pop up window type popupWindow = new PopupWindow(context); ArrayList sortList = new ArrayList(); sortList.add(“VIEW FULL”); […]

新的Android Studio活动设计模式content_main.xml

我开始学习Android,但是在新的Android Studio 1.4中使用空白活动会创建两个xml文件 – activity_main和content_main – 从我读到的这是新的设计模式,但是没有相对较新的教程(<1yr)提到这一点并使用空白活动进行操作仅创建activity_main。 它有什么办法吗? 是否可以创建自己的活动模板或仅创建不含content_main的activity_main? 学习Android初学者已经足够麻烦,无需每次从空活动手动创建java和xml,或者在尝试学习时尝试将教程中的文件“翻译”为新的设计模式。

Android布局:二次视图

在Android应用程序中,我需要向RelativeLayout添加一个符合以下规则的视图: 视图应该是二次的,即视图的高度和宽度必须匹配。 视图应该填满整个WIDTH。 它看起来应该是这样的(正方形应该垂直居中): +————-+ | activity | | | |+———–+| || || || square || || || || || |+———–+| | | | | +————-+ 最后我想要一个显示二次图像的ImageView。 目前我通过将视图的宽度和高度都设置为FILL_PARENT来实现此目的,并让ImageView正确绘制图像(使用scaleType = centerInside)。 但是:现在我希望有一个与方形视图的顶行对齐的附加视图,这就是我的方法失败的地方。 如果我现在将视图的宽度设置为FILL_PARENT,并将其高度设置为WRAP_CONTENT,则图像将不再适合整个宽度。 你有解决这个问题的方法吗? 如果可以通过只编写XML来完成,那将是更好的选择。 提前致谢!

Android:具有动态actionBar颜色和DrawerLayout的透明状态栏

我有一个DrawerLayout的活动。 我们的客户要求我们根据从DrawerLayout选择的项目动态更改操作栏颜色和此活动的相应状态栏颜色。 这很容易做到。 但是,我的问题是,当我动态更改状态栏颜色时,我无法保持状态栏透明。 当我打开抽屉时,彩色状态栏覆盖了DrawerLayout的顶部,如下所示: 但是,我希望我的DrawerLayout看起来像这样: 我可以使用以下行: true 但是,我的问题不在于我无法设置状态栏的透明度。 我的问题是状态栏和操作栏颜色的动态更改不适用于windowTranslucentStatus 。 即使我调用了getWindow().setStatusBarColor()我的状态栏颜色仍然是colorPrimaryDark ( colorPrimaryDark状态栏上可见的芥黄色getWindow().setStatusBarColor() 。 现在,我遵循了本教程,并且这个和stackoverflow问题在许多其他人之间,但无法解决问题。 所有这些文章都说,一旦我将windowTranslucentStatus设置为true , ActionBar将移动到状态栏下方的顶部(以便状态栏与操作栏重叠)。 之后,我应该可以在操作栏中添加一些填充,只需更改操作栏颜色也会导致颜色相同的深色状态栏,因为状态栏实际上是半透明的并且与我的操作栏重叠。 但是,出于某种原因,在我的情况下不会发生这种情况。 无论我将fitsSystemWindows设置为true还是false或者完全删除该属性,操作栏都会保留在原来的位置。 操作栏始终位于状态栏下方 ,当然,如果我设置透明度,则该状态栏始终为黄色。 我还尝试以编程方式更改状态栏颜色时设置alpha。 这确实使状态栏有点透明,但它看起来很奇怪,因为它不再是黑暗 。 删除CoordinatorLayout也没有任何帮助。 我花了几个小时试图解决这个问题,现在感到非常沮丧。 任何帮助是极大的赞赏。 我的activity_main : 这是我的app_bar_main的XML:

ViewPager使用xml文件作为视图

我想在ViewPager(使用PagerAdapter)中使用三个先前创建的活动,以便用户可以水平平滑地滚动它们。 我按照了一个很好的教程。 问题出在他们使用TextViews演示的教程中。 我已经完成了活动(布局在XML文件中)。 我想现在在滑块中使用这些活动,但看起来我只能使用Views。 我无法弄清楚如何更改类的代码(从“implements Activity”到“extends View”),我可以在滑块中使用它。 我当前的代码如下所示: public class HorizontalSliderBeispielActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); cxt = this; awesomeAdapter = new AwesomePagerAdapter(); awesomePager = (ViewPager) findViewById(R.id.awesomepager); awesomePager.setAdapter(awesomeAdapter); } … 然后使用PageAdapter的内部类: … private class AwesomePagerAdapter extends PagerAdapter { public Object instantiateItem(View collection, int position) { TextView tv = new […]

强制平板电脑使用xhdpi资源

我正在处理一个应用程序,我已经提供了从ldpi到xhdpi的所有资源,但是有些平板电脑使用hdpi(或者在我正在测试的nexus 7的情况下使用tvdpi)所以当我在平板电脑上打开应用程序时一切都很小,我想强迫他们使用xhdpi资源我该怎么做? 我不想仅为平板电脑创建单独的文件,或者应用程序的大小会增加,xhdpi资源可以正常工作 在手机上一切正常显示,平板电脑是问题,因为他们为大屏幕采用小分辨率资产,所以实际尺寸以英寸(4厘米,用尺子测量)是正确的,但它们实际上看起来很小,使得整体设计不正确

用于布局的Android xml选择器

我想知道布局的选择器是否像drawables一样。 带drawable的选择器示例: 但是有可能有这样的东西(下面的代码对我不起作用,但它应该让你知道我想要完成的事情):

使用AccessibilityService读取通知

我最近尝试使用AccessibilityService读取传入的通知。 我知道使用NotificationListenerService读取通知,但这不是我需要的(为了与较低的Android版本兼容)。 我的问题是, OnServiceConnected()永远不会被调用,即使在我的设置中,我已经为我的应用程序提供了必要的预测。 这是我的代码: public class NotificationAccessibilityService extends AccessibilityService{ protected void onServiceConnected() { Log.d(“Tortuga”, “AccessibilityService Connected”); AccessibilityServiceInfo info = new AccessibilityServiceInfo(); info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED; info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK; info.notificationTimeout = 100; setServiceInfo(info); } @Override public void onAccessibilityEvent(AccessibilityEvent e) { Log.d(“Tortuga”,”FML”); if (e.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) { Log.d(“Tortuga”,”Recieved event”); Parcelable data = e.getParcelableData(); if (data instanceof Notification) […]

Google会在actionbarsherlock标签中进行映射

我想让谷歌地图v2在我的应用程序中工作。 我已经看到几个示例显示如何在活动中打开SupportMapFragment。 想法是你的活动将调用setContentView(R.layout.map_layout); 其中map_layout.xml链接到带有行的片段: android:name=”com.google.android.gms.maps.SupportMapFragment” xmlns:map=”http://schemas.android.com/apk/res-auto” “name =”行有效地表示“此布局由”SupportMapFragment“types的片段控制。 我的复杂之处在于我试图让地图显示在带有标签的活动中(使用actionbarsherlock实现)。 这意味着对应于选项卡选择的任何片段都必须实现TabListener。 但是SupportMapFragment没有。 所以现在我想要创建一个像这样的新片段: public class MyMapFragmentWithTabListener extends SupportMapFragment implements TabListener { 但是现在我对如何编写MapFragmentWithTabListener的内容感到困惑,特别是在onCreateView上…我应该膨胀一些布局吗? 当然我不能从示例中完全膨胀相同的map_layout.xml,因为它已经声明它由SupportMapFragment控制,而在此实现中它应该由MyMapFragmentWithTabListener控制 – 我是否需要稍微不同的xml文件来膨胀(如果它应该是什么样子?) – 或者我应该以编程方式创建我的视图?