- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试按照预期的形状制作椭圆形 tabhost。
我尝试了以下代码。
public class AndroidTabLayoutActivity extends TabActivity {
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, PhotosActivity.class);
View tabView = createTabView(this, "Updates");
spec = tabHost.newTabSpec("tab1").setIndicator(tabView).setContent(intent);
tabHost.addTab(spec);
tabView = createTabView(this, "Events");
intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("tab2").setIndicator(tabView)
.setContent(intent);
tabHost.addTab(spec);
TabWidget tabWidget = (TabWidget) findViewById(android.R.id.tabs);
final int tabChildrenCount = tabWidget.getChildCount();
View currentView;
for (int i = 0; i < tabChildrenCount; i++) {
currentView = tabWidget.getChildAt(0);
LinearLayout.LayoutParams currentLayout =
(LinearLayout.LayoutParams) currentView.getLayoutParams();
currentLayout.setMargins(0, 0, 16, 0);
}
tabWidget.requestLayout();
tabHost.getTabWidget().setDividerDrawable(null);
}
private static View createTabView(Context context, String tabText) {
View view = LayoutInflater.from(context).inflate(R.layout.custom_tab, null, false);
TextView tv = (TextView) view.findViewById(R.id.tabTitleText);
tv.setText(tabText);
return view;
}
}
主.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#2CA0E6">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="20dp"
android:layout_marginTop="30dp"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="2dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingTop="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="70dp" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</TabHost>
</LinearLayout>
自定义标签.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabTitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:clickable="true"
android:padding="5dp"
android:textSize="15sp"
android:textStyle="bold"
android:layout_gravity="center"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@color/tab_textcolor"
android:background="@drawable/tab_selector"/>
谁能帮忙,怎么做。谢谢
最佳答案
这是一张图片。您需要做的就是准备好图片并将它们设置到选定的选项卡。就是这样!
嗯,我没有那张图片,所以我使用下面的图片(selected.png,not_selected.png)只是为了展示它是如何工作的,但它们不是精心设计 ;)
P.s currentLayout.setMargins(0, 0, this_should_be_zero, 0);
并且你的图片应该有那个边距(无论预期的差距是多少)否则会有差距在两个图像之间。此外,您可以使用选择器(相同的 png 和另一种颜色)来显示所选的。
如果您有额外的时间和精力,似乎您正在尝试找出一种编程方式尝试使用 Paint 类的解决方法,如果您使用形状将很难找出确切的 View ,因为它很复杂,您可以看到tab A View 和B View 不一样,用图片最简单
并在您的custom_tab.xml 设置中
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabTitleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:clickable="true"
android:padding="5dp"
android:textSize="15sp"
android:textStyle="bold"
android:layout_gravity="center"
android:ellipsize="marquee"
android:MaxLines="1" // you can use this instead of android:singleLine="true"
android:textColor="@color/black"
android:background="@drawable/tab_button_effect"/> // here set selector
tab_button_effect.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/not_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/selected"></item>
</selector>
关于android - 如何在android中制作椭圆形tabhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003458/
我希望通过具有可以具有不同 x 和 y 值的 vec2 半径将我当前的圆形光变成椭圆形。有没有什么方法可以根据我当前在片段着色器中的代码执行此操作? uniform struct Light { ve
我正在尝试在显示的图像中实现形状。我不知道该怎么做。我尝试的最后一件事是: Container( height: 175, deco
刚开始摆弄 GUI。我希望这个程序绘制矩形/圆形(取决于用户单击的位置),并继续在前一个形状内绘制相同的形状,直到达到用户在文本字段中输入的数量。当我运行它时,它似乎永远无法进入paintCompon
我需要在Python程序中计算两个椭圆相交的数量。我知道在shaply如果两个对象相交,有一个函数返回 true。就像这样: from shapely.geometry import Polygon
不幸的是,我无法为 EditText 作品制作椭圆大小。当文本太长时,甚至可以在文本末尾放置三个点吗?它适用于 TextiView 但不适用于 EditText。有什么想法吗? android:id
谁能帮我从div中剪出这样的一个? 找到了可能的解决方案,但不了解 SVG。也许有人可以帮助我。 HTML: CSS: svg { position: relative; top:
有没有办法省略 NSTextField 的文本内容,而不是截断? 所以代替: The quick brown fox jumped over 它会说: The quick brown fox jump
我有一个线性布局 View ,我已将其背景设置为椭圆形纯色。到目前为止,我的背景是圆圈。现在我想实现相同的效果,即使用可绘制的形状来获得具有 2 种颜色的圆圈。请见附件。 最佳答案 关
我有一个指向 CursorAdapter 的微调器。我用一个特定的 View 设置这个适配器。我想修复微调器的宽度,我尝试了很多东西都没有成功: layout_width="100dp"//强制 KO
我正在尝试使用@ValidateWithMethod 来验证属性。我有两个非常不同的自定义验证。我想将它们放在不同的方法中,以便我可以获得不同的消息。但是,放置两个单独的 @ValidateWithM
我正在为一个学校项目创建一个程序,用户可以使用控制以下尺寸和颜色的按钮创建一个几何形状(应该看起来像一匹马):一个椭圆形、一个圆形、两个矩形和一个字符串(作为图的标题)。为了保存该图,我想要一个包含所
我有一个 UICollectionView,可以显示圆形、椭圆形、矩形等形状。因此,当我单击 Cell 时,我需要在 UIView 上绘制相同的形状,然后我需要移动并调整通过单击 Cell 绘制的 V
上图是我正在尝试创建的,但在处理椭圆形时遇到了一些困难。解释: 菜单栏是一个带有轻微线性渐变(深灰色到透明浅灰色)的 div 公司 Logo 图像具有透明背景,位于菜单栏的“顶部” 椭圆形切口需要与
我是 Android Studio 的新手,目前我正在尝试以编程方式创建随机颜色、笔划宽度和大小的椭圆形(不是实心,只是笔划): long randomSeedm = System.c
开始之前的相关信息:我已经搜索了 stackoverflow,并发现了类似的标题问题,但我不认为它们是我的重复项,因为它们有一个关键的区别,它们似乎有包含引用的对象给自己,造成圈子。我没有那个。 {
我是 OpenCV 的新手,需要了解 OpenCV 检测不同形状(圆形、正方形、矩形、三角形、椭圆形)的 iPhone 摄像头图像的方法。 所以,有人可以指导我正确的方向(引用/文章/任何东西),哪些
我正在尝试在java中编写一个20个板堆栈,使用按键功能堆叠一个新板,并使用鼠标单击功能使各个板一一消失到0。我不明白为什么我的函数不会'他们不会按照我的命令去做工作,请帮忙。 // Declare
我是一名优秀的程序员,十分优秀!