我按照本教程为特定的Android视图创建了一个颜色状态列表.我只是希望它在点击时突出显示,以便用户知道屏幕刚刚更改的原因.
呈现视图时,我收到以下错误:
org.xmlpull.v1.XmlPullParserException:二进制XML文件行#3:标记需要一个'drawable'属性或定义drawable的子标记
我的颜色XML(在res/color/viewcolor.xml中):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#ff33ffff"/> <!-- pressed -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
Run Code Online (Sandbox Code Playgroud)
我的布局XML(在res/layout/myview.xml中):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myview"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:background="@color/viewcolor">
<!--crap in the layout-->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
可能重复:
如何在焦点和单击上更改ListView项目的颜色
朋友们,
我想在Android列表项上更改颜色单击任何一个指导我应该使用哪个属性来实现此功能?
实际上,当用户点击列表项时,他不知道是否被点击了?
这是我的代码.
<ListView android:id="@+id/android:list" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:drawSelectorOnTop="false"
android:layout_below="@+id/Tablayoutdesign"
android:cacheColorHint="#000000"
android:dividerHeight="1dip"
android:layout_marginTop="63dip"
android:layout_marginBottom="40dip"
/>
Run Code Online (Sandbox Code Playgroud) 我想在我的应用程序中设置lisview样式,如图所示

我试图通过应用渐变来开发它:
list_item_normal的代码是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:centerColor="#E6E6E6"
android:endColor="#CCCCCC"
android:startColor="#FFFFFF"
android:angle="270"/>
<!--
<gradient
android:startColor="#FF7500"
android:centerColor="#FFCC00"
android:endColor="#FF7500"
android:angle="270"/>
-->
<stroke
android:width="1dp"
android:color="#A0000000" />
<padding
android:bottom="8dp"
android:left="5dp"
android:right="5dp"
android:top="8dp" />
<corners android:radius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
list_item_pressed.xml的代码是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:centerColor="#E6E6E6"
android:endColor="#CCCCCC"
android:startColor="#FFFFFF" android:angle="270"/>
<!--
<gradient android:startColor="#FF66CFE6" android:centerColor="#FF207FB9"
android:endColor="#FF0060B8" android:angle="270"/>
-->
<stroke
android:width="2dp"
android:color="#80000000" />
<padding
android:bottom="8dp"
android:left="5dp"
android:right="5dp"
android:top="8dp" />
<corners android:radius="7dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
list_item_pressed.xml的代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:centerColor="#E6E6E6"
android:endColor="#CCCCCC"
android:startColor="#FFFFFF" …Run Code Online (Sandbox Code Playgroud) 我有一个表格行,当它聚焦时我尝试了许多改变颜色的东西,但是在聚焦时它永远不会改变颜色.有没有办法做到这一点?我试过这个也改变了点击的颜色,但只有当它集中注意力时:
r.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg0.isFocused())
{
arg0.setBackgroundColor(Color.BLUE);
//arg0.isFocused();
}
return false;
}});
Run Code Online (Sandbox Code Playgroud)