背景 很多时候,我们需要将TextView的字体自动适应给定的边界。 问题 可悲的是,即使有许multithreading和post(和build议的解决scheme)在谈论这个问题(例如这里 , 这里和这里 ),但其中没有一个能够很好地工作。 这就是为什么,我决定testing他们每一个,直到我find真正的交易。 我认为这样的textView的要求应该是: 应该允许使用任何字体,字体,样式和字符集。 应该处理宽度和高度 除非由于限制,我们已经给予它(例如:太长的文本,太小的可用大小),除非文本不适合,否则不要截断。 但是,如果我们愿意的话,我们可以请求横向/纵向滚动条,只是针对这些情况。 应该允许多线或单线。 在多线的情况下,允许最大和最小线。 计算速度不宜太慢。 使用循环find最佳尺寸? 至less优化它,不要每次增加1次采样。 在多行的情况下,应该允许selectresize或使用更多的行,和/或允许使用“\ n”字符自己select行。 我试过了 我已经尝试了很多样本(包括那些链接,我已经写了),我也试图修改它们来处理这些案例,我已经提到过,但是没有一个真正起作用。 我做了一个示例项目,使我可以直观地看到TextView是否自动适配。 目前,我的示例项目只是随机化文本(英文字母加数字)和textView的大小,并让它保持单行,但即使这样做不适用于我尝试过的任何示例。 这里的代码( 这里也可以): 文件res/layout/activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Button" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/button1" android:layout_alignParentLeft="true" android:background="#ffff0000" android:layout_alignParentRight="true" android:id="@+id/container" android:layout_alignParentTop="true" /> </RelativeLayout> 文件src/…/MainActivity.java public class […]
我正在使用appcompat v7在Android 5或更less版本上获得一致的外观。 它工作得很好。 但是我不知道如何改变EditTexts的底线颜色和重音颜色。 可能吗? 我试图定义一个自定义的android:editTextStyle (参见下面),但我只能成功地更改完整的背景颜色或文本颜色,但不是底线,也没有重音颜色。 有没有一个特定的属性值使用? 我必须通过android:background属性使用自定义的可绘制图像吗? 是不是可以在hexa中指定颜色? <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:editTextStyle">@style/Widget.App.EditText</item> </style> <style name="Widget.App.EditText" parent="Widget.AppCompat.EditText"> ??? </style> 根据android API 21来源,具有材质devise的EditTexts似乎使用了colorControlActivated和colorControlNormal 。 因此,我试图在先前的样式定义中覆盖这些属性,但是它没有效果。 可能appcompat不使用它。 不幸的是,我无法find材质devise的最后一个版本的appcompat的来源。
我正在开发一个应用程序,我知道我的数据库*.db将出现在data/data/com.****.*** 我可以从Eclipse中的AVD在sqlitepipe理器的帮助下访问这个文件 但是我不能在我的Android手机上访问这个文件。 我谷歌它说,我需要根植我的电话做到这一点,但我不想这样做。 (新手机,保修问题和安全问题) 所以这里是我的问题:我怎样才能访问我的Android手机中的data/data/…..目录“ 没有根植它 ”? 我可以更改目录data/data…..用户权限data/data…..没有根植它?
我正在使用Android v21支持库。 我创build了一个自定义背景颜色的button。 当使用背景颜色时,材质devise效果如波纹,显示效果消失(除了点击高程)。 <Button style="?android:attr/buttonStyleSmall" android:background="?attr/colorPrimary" android:textColor="@color/white" android:textAllCaps="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Button1" /> 以下是一个正常的button,效果工作得很好。 <Button style="?android:attr/buttonStyleSmall" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAllCaps="true" android:text="Button1" />
在Android API 11+中,Google发布了一个名为Fragment的新类。 在video中,Googlebuild议尽可能(链接1,链接2),我们应该使用片段而不是活动,但是他们没有解释为什么。 碎片的目的和它们的一些可能的用途(除了一些简单的视图/布局可以轻易实现的UI示例之外)? 我的问题是关于碎片: 什么是使用片段的目的? 与使用活动/视图/布局相比,使用片段有哪些优缺点? 奖金问题: 你能给一些非常有趣的碎片使用吗? 谷歌没有在他们的video中提到的东西? 在片段和包含它们的活动之间进行通信的最佳方式是什么? 使用碎片时要记住什么是最重要的事情? 任何提示和警告从您的经验?
在诸如Twitter(官方应用程序)之类的Android应用程序中,当您遇到ListView时,您可以将其拉下(并在发布时反弹回来)以刷新内容。 我想知道什么是最好的方式来实现呢? 我能想到的一些可能性: ListView上的一个项目 – 但我不认为滚动回ListView上的animation的项目位置1(0为基础)是一件容易的事情。 在ListView之外的另一个视图 – 但我需要照顾当拉动ListView位置向下时,我不确定是否可以检测到ListView的拖动触摸仍然真正滚动ListView上的项目。 任何build议? PS我不知道官方Twitter应用程序源代码何时发布。 有人提到它会被释放,但是6个月过去了,从那时起我们还没有听说过。
用于Eclipse的新版ADT r17插件添加了自动设置JAR依赖项的function。 / libs文件夹中的任何.jar文件现在都被添加到构buildconfiguration中。 不幸的是Android的依赖关系类path容器是不可修改的。 如何将javadoc和源文件附加到自动插入的.jar(从/ libs文件夹)?
我已经实现了我的类与可序列化,但它仍然无法正常工作。 这是我的class级: package com.ursabyte.thumbnail; import java.io.Serializable; import android.graphics.Bitmap; public class Thumbnail implements Serializable { private static final long serialVersionUID = 1L; private String label = ""; private Bitmap bitmap; public Thumbnail(String label, Bitmap bitmap) { this.label = label; this.bitmap = bitmap; } public void set_label(String label) { this.label = label; } public String get_label() { […]
我试图使用导入在Google项目中添加google-play-service库(对于Google地图)。 添加了这个引用旁边的红色X的path,并且不添加引用。 知道如何解决这个问题?
我正在使用Firebase云消息传递发送推送通知。 这是我的FirebaseMessageService : public class FireBaseMessageService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.e("TAG", "From: " + remoteMessage.getFrom()); Log.e("TAG", "Notification Message Body: " + remoteMessage.getData().get("CardName")+" : "+remoteMessage.getData().get("CardCode")); sendNotification(remoteMessage.getNotification().getBody()); } private void sendNotification(String messageBody) { Intent intent = new Intent(this, StartActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); Uri […]