相关疑难解决方法(0)

自定义字体和XML布局(Android)

我正在尝试使用Android中的XML文件定义GUI布局.据我所知,没有办法指定您的小部件应该在XML文件中使用自定义字体(例如,您放置在assets/font /中的字体),并且您只能使用系统安装的字体.

我知道,在Java代码中,我可以使用唯一ID手动更改每个窗口小部件的字体.或者,我可以迭代Java中的所有小部件来进行此更改,但这可能会非常慢.

我还有其他选择吗?有没有更好的方法来制作具有自定义外观的小部件?我不是特别想要为我添加的每个新小部件手动更改字体.

java user-interface fonts android interface

174
推荐指数
9
解决办法
17万
查看次数

如何在Android中的ToolBar中添加刷新和搜索等按钮?

在此输入图像描述

我制作了一个ToolBar,但是当我在menu.xml中添加菜单项时,它总是显示为溢出.如何单独添加?此外,标题显示在中间(垂直),如何在顶部显示?

menu.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.toolbar.MainActivity" >

       <item android:id="@+id/action_search"
          android:icon="@drawable/ic_launcher"
          android:title="@string/action_search"
          android:showAsAction="ifRoom"
          android:orderInCategory="1" 
          android:menuCategory="secondary"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

package com.example.toolbar;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
        setSupportActionBar(toolbar);
       // toolbar.setNavigationIcon(R.drawable.back);
        toolbar.setLogo(R.drawable.ic_launcher);
        //toolbar.setTitle("Title");
       // toolbar.setSubtitle("Subtitle");





    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it …
Run Code Online (Sandbox Code Playgroud)

android-5.0-lollipop android-toolbar

62
推荐指数
2
解决办法
12万
查看次数

更改警报对话框Android的标题字体

我想更改警报对话框标题字体 ..

任何人都可以告诉我该怎么做...?

任何帮助,将不胜感激..

fonts android android-alertdialog

22
推荐指数
3
解决办法
2万
查看次数

Android上的自定义字体和自定义Textview

从我需要开发的应用程序,我收到了一个特定的字体,有很多文件,如FontName-Regular,FontName-Bold,FontName-it.我需要在应用程序的所有textview中使用它.首先,我认为这是一项简单的任务.看看SO,找到一个非常好的线程:这里

所以首先我喜欢:

public static void overrideFonts(final Context context, final View v) {
    try {
        if (v instanceof ViewGroup) {
            ViewGroup vg = (ViewGroup) v;
            for (int i = 0; i < vg.getChildCount(); i++) {
                View child = vg.getChildAt(i);
                overrideFonts(context, child);
            }
        } else if (v instanceof TextView) {
            ((TextView)v).setTypeface(FONT_REGULAR);
        }
    } catch (Exception e) {
        e.printStackTrace();
        // ignore
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的活动中onCreate期间调用此方法.我的应用程序中的每个textView都显示出字体和男孩,我很高兴能够轻松逃离.直到我进入一个屏幕,其中一些textviews需要Bold as Style(android:textStyle="bold").然后我意识到这个解决方案不能让我从资产中加载Font-Bold .ttf.

比较深入,看到一个很好的自定义TextView实现,在同样的SO问题:

public class MyTextView extends TextView …
Run Code Online (Sandbox Code Playgroud)

android custom-controls textview typeface

18
推荐指数
2
解决办法
2万
查看次数

如何在使用AppCompat时更改ActionBar标题字体

我想将自定义字体应用于我的应用程序的标题,该标题显示在ActionBar上.以前我没有使用任何支持库和这个解决方案:

int titleId = getResources().getIdentifier("action_bar_title", "id",
                "android");
TextView yourTextView = (TextView) findViewById(titleId);
yourTextView.setTypeface(face);
Run Code Online (Sandbox Code Playgroud)

对我来说很好.但是现在我使用材质设计SupportActionBar,这会抛出NullPointerException.那么如何在使用AppCompat时更改ActionBar字体?

android android-layout android-fonts android-actionbar android-actionbar-compat

14
推荐指数
2
解决办法
9073
查看次数

为什么Android会截断我的ActionBar标题?

在我的应用程序中,我从显示的每个片段更改ActionBar中的标题.当我第一次启动我的应用程序时,我得到了一个请求列表,所以我的标题是"我的请求(20)".

然后,当您单击该列表中的项目时,它将替换我的Activity中的片段,并将标题设置为"Action".

当我回到第一个视图(总是在同一个Activity中)时,我将标题重置为"我的请求(20)",但是android决定截断它.结果就是"我的要求......".

经过多次测试后,当我在其中放入较小的文本时,看起来Android正在缩小我的标题.但是当我放一个较长的文字时,即使有足够的空间,它也不会放大.

我该怎么做才能解决这个问题?我想要一个更好的解决方案,而不是在我的短标题结尾添加空格:)

这是我用来更改ActionBar标题的代码:

getActivity().getActionBar().setTitle(title);   
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

13
推荐指数
2
解决办法
9330
查看次数

ActionBarSherlock选项卡的自定义字体

我想为其中的"视频"和"图像"标签设置字体ActionBarSherlock.我使用以下代码来执行此操作.它在ICS中准确显示,但在较低版本的设备中没有显示,但我通过设置TYPE FACE,在本应用程序的其他部分显示了准确的输出...

a.settypeface("ab.tttf");
a.settext("VIDEO");
Run Code Online (Sandbox Code Playgroud)

但如何做我设置TypeFaceActionBar此代码:

mTabsAdapter.addTab(bar.newTab().setText("IMAGE"), AFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("VIDEO"), BFragment.class, null);
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock

11
推荐指数
2
解决办法
5764
查看次数

使用Lollipop SDK在Android工具栏/ ActionBar中使用Marquee标题?

我尝试了几种不同的方法,包括在这里找到的方法(这反过来让我尝试了这个问题的两个最佳答案),以及使用反射来访问TextView并设置相关方法.两次尝试均失败,前者导致根本没有文本被设置为标题(我将文本设置为正确的textview元素),后者设置文本并删除椭圆,但根本没有绘制.以下是我的反思尝试.

import android.content.Context;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;
import android.widget.Toast;

import java.lang.reflect.Field;

public class MarqueeToolbar extends Toolbar {

    public MarqueeToolbar(Context context) {
        super(context);
    }

    public MarqueeToolbar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MarqueeToolbar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void setTitle(CharSequence title) {
        if (!reflected) {
            reflected = reflectTitle();
        }
        super.setTitle(title);
    }

    @Override
    public void setTitle(int resId) {
        if (!reflected) {
            reflected = reflectTitle();
        } …
Run Code Online (Sandbox Code Playgroud)

java android android-actionbar android-5.0-lollipop android-toolbar

8
推荐指数
4
解决办法
7447
查看次数

将活动标题椭圆设置为中间?

我有一个活动,其标题保持不变,但有时它的长,并得到结尾的省略号.我可以将椭圆设置为中间吗?

java android

7
推荐指数
2
解决办法
4301
查看次数

为什么我的标题在我的ActionBar中使用不垂直居中的自定义字体?

在尝试修改我的ActionBar标题字体时,我找到了一个答案,建议调整Typeface通过a SpannableString.虽然它的工作原理如答案中所述,但放置似乎偏离垂直居中.

标题的屏幕截图不是垂直居中

我尝试过两种不同的字体,包括OpenType(Roundhand)和TrueType(Billabong).此外,我在一台较旧的Gingerbread设备(屏幕截图来自)上运行2.3.3以及通过运行4.2的较新的Jelly Bean设备试用了这个.该项目使用ActionBarSherlock,因此是我最后的理论罪魁祸首.我也调整了字体大小,希望它略微居中,但要知道这只不过是一个黑客,并没有解决手头的最终问题.

有了这个,为什么我的标题没有适当集中,我该如何纠正呢?如果有一种方法来调整上面引用的实现解决方案的对齐,那肯定就足够了,即使ActionBarSherlock是罪魁祸首.然而,知道罪魁祸首是什么以及为什么会发生这种情况是答案的一部分,而不仅仅是提供一种解决方法.

更新:

下面的屏幕截图使用了Show layout bounds.请注意,为了使用Show布局边界,该设备显然正在运行Jelly Bean,而之前的截图来自Gingerbread设备.在任何一种情况下,问题都是一样的.

在此输入图像描述

更新:

如果我Typeface.DEFAULT在调用setSpan边界时使用,并且对齐方式应该出现.

在此输入图像描述

更新:

在尝试第三种字体时,问题似乎与字体有关.

在此输入图像描述

fonts android actionbarsherlock

6
推荐指数
1
解决办法
787
查看次数