我对Android中的drawable的setbounds方法感到困惑.我知道它与drawable一起使用,它设置在drawable和它有多大的位置.简而言之,它定义了可绘制的边界矩形.但我很困惑:它是设置边框或填充或其宽度或高度?
这就是我们使用setbounds的方式
drawableInstance.setBounds(L,T,R,B);
Run Code Online (Sandbox Code Playgroud)
所以在上面的情况下,如果我分别为L,T,R,B设置5,5,5,5,则可绘制的L,T,R,B将始终分别来自其父项?我的意思是它会像是为每一侧设置隐藏的5px边框吗?此外,如果图像不足以满足其父级的边框宽度,图像会更大吗?
我分别为L,T,R,B设置了5,5,100,100.令我困惑的是,它将从父母5px开始绘制到顶部,从左边开始绘制5px.那将是起点.然后图像将是100px因为我设置100为正确.所以它是正确的100px.与右边相同.
但我测试了它.我认为两者都不如我所想.它是如何工作的,特别是与setBounds的每个参数有关?
我正在开发一个游戏手册应用程序,在ViewPager中显示12个视图.这是我的自定义PagerAdapter:
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[] { R.drawable.copertinai,
R.drawable.blui, R.drawable.azzurroi, R.drawable.rossoi,
R.drawable.gialloi, R.drawable.verdei, R.drawable.rosai,
R.drawable.grigioi, R.drawable.neroi, R.drawable.arancionei,
R.drawable.marronei, R.drawable.violai, R.drawable.ulm };
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = MainActivity.this;
RelativeLayout relLayImageView = new RelativeLayout(context);
relLayImageView.setBackgroundResource(mImages[position]);
((ViewPager) container).addView(relLayImageView, new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
return relLayImageView;
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) 我正在开发新的Android L预览版,现在处理drawable上的着色概念.
我想知道Android L Developer Preview中是否有关于可绘制着色的新内容.
我读到这篇文档说:
Android L开发人员预览版使您可以将位图或九个修补程序定义为alpha蒙版,并使用颜色资源或解析为颜色资源的主题属性对其进行着色(例如,
?android:attr/colorPrimary).您只能创建一次这些资源并自动着色以匹配您的主题.
但我不明白它与以前的版本有什么不同.我知道如何使用ColorFilter或PorterDuffColorFilter在图像上应用色调.任何有关这方面的帮助将不胜感激.
android shape xml标签useLevel属性的目的是什么?这与图层列表有关,但无关紧要.从文档我发现useLevel标记的meanging:
指示drawable的级别是否影响绘制渐变的方式.
所以如果我有以下xml片段:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="15dp"
android:thickness="10dp"
android:useLevel="false">
<solid android:color="#ababf2" />
<size
android:height="50dp"
android:width="50dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
然后使用useLevel = true,禁用戒指.戒指出现必定为假.但是这个属性的目的是什么?文档不清楚.
我在TextView中添加了Drawable start图像.问题是我无法控制TextView中Drawable的重力
到目前为止我取得了什么
这是我的TextView
<TextView
android:id="@+id/tv_8_digit_check"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawablePadding="@dimen/dimen_4"
android:drawableStart="@drawable/ic_validate"
android:text="@string/at_least_8_characters_txt"
android:textColor="@color/white_trans"
android:textSize="12sp" />
Run Code Online (Sandbox Code Playgroud)
关于如何将Drawable的重力设置为顶部/开始的任何建议?谢谢
android textview android-layout android-drawable android-gravity
我以这种方式将可绘制资源路径存储在Uri中:
Uri uri = Uri.parse("android.resource://my_app_package/drawable/drawable_name");
Run Code Online (Sandbox Code Playgroud)
如何获得uri引用的Drawable?
我不想把它放在ImageView中,只需检索Drawable(或Bitmap)对象.
我用drawable创建了聊天气泡看起来很好,现在我想在drawable下面添加阴影效果,这样就可以产生3d效果.我不想使用9-pitch图像.我只是想知道如何在这个drawable上添加阴影效果.我的代码是
---- right_bubble_chat_drawable
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="15dp" />
<solid android:color="@color/chatrightbubbleColor" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
<size
android:height="@dimen/normal_button_height"
android:width="@dimen/normal_button_width" />
Run Code Online (Sandbox Code Playgroud)
---用于角落指针'chat_laftarraow'
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<rotate
android:fromDegrees="90"
android:toDegrees="-90"
android:pivotX="50%"
android:pivotY="50%" >
<rotate
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="-40%"
android:pivotY="86%" >
<shape
android:shape="rectangle" >
<stroke android:color="#00aaef" android:width="1dp"/>
<solid
android:color="#00aaef" />
</shape>
</rotate>
</rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
-------我正在使用它们
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<View
android:id="@+id/left_chatArror"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_marginTop="6dp"
android:background="@drawable/chat_laftarraow"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="220dp" …Run Code Online (Sandbox Code Playgroud) 我试图使用xml drawable绘制它.
<ProgressBar
android:id="@+id/onboarding_activity_progress_bar"
android:layout_gravity="center"
android:padding="10dp"
android:layout_width="120dp"
android:layout_height="120dp"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/progressbar_onboarding_view"
tools:progress="60"/>
Run Code Online (Sandbox Code Playgroud)
Progressbar_onboarding_view.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape android:useLevel="false"
android:innerRadiusRatio="2.0"
android:shape="ring"
android:thickness="10dp">
<solid android:color="@color/progress_bar_background_color" />
<corners android:radius="50dp"/>
</shape>
</item>
<item android:id="@android:id/progress">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:useLevel="true"
android:innerRadiusRatio="2.0"
android:shape="ring"
android:thickness="10dp">
<solid android:color="@color/progress_bar_color" />
</shape>
<!--
<scale
android:drawable="@drawable/progressbar_round_corner"
android:scaleWidth="98%" /> -->
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
progressbar_rounded_corner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:radius="10dp"/>
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/holo_red_dark" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我尝试使用scale参数,但进度角没有改变.我不确定如何实现圆角.请帮助我真的很感激.
我正在尝试使用XML在Android应用中绘制对角线,但它无效.它只是绘制一条水平线.
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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TestActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
style="@style/diagonalStyle">
</RelativeLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
styles.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="diagonalStyle">
<item name="android:background">@drawable/background</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
background.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<rotate
android:fromDegrees="0"
android:toDegrees="45"
android:pivotX="50%"
android:pivotY="50%" >
<shape
android:shape="line"
android:top="1dip" >
<stroke
android:width="1dip"
android:color="#FF0000" />
</shape>
</rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud) android android-manifest android-layout android-xml android-drawable
仅使用xxhdpi图像并让android缩放图像有任何缺点吗?(是的,它可能更集中cpu,但它是否值得注意?)我在三星s2上测试它,差异很小.
如果将minSdk设置为XX,是否只有使用此限制,因为没有xxhdpi?
android ×10
android-drawable ×10
xml-drawable ×2
android-xml ×1
exception ×1
layer-list ×1
memory ×1
textview ×1
tint ×1
uri ×1
xml ×1