我正在寻找创建一个支持动画的小部件,理想情况下通过android.view.animation框架,否则通过在后台服务触发的代码中设置远程视图的属性.
有没有人对这些方法中的任何一种都有任何经验,而且我正在尝试做什么,或者我是否正在走向死胡同?
我使用setEnabled(false)来设置它无法,但它不起作用.在此方法之后,RadioGroup.IsEnabled()的值为false.价值改变了.
该代码来自Android编程指南.Ps:Spinner组件使用setEnabled(false)很好.
代码如下:
package com.example.testviews;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioGroup;
public class TestRadioGroup extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.radiogroup);
final RadioGroup testRadioGroup = (RadioGroup) findViewById(R.id.testRadioGroup);
final Button changeEnabledButton = (Button) findViewById(R.id.changeEnabledButton);
changeEnabledButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
changeEnabled(testRadioGroup);
}
});
final Button changeBgColorButton = (Button) findViewById(R.id.changeBackgroundColorButton);
changeBgColorButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) { …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我在表中创建动态行,就像在本教程中一样:http: //en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout
for(int i = startDay; i < startDay + 7; i++){
/* Create a TextView to be the row-content. */
TextView day = new TextView(this);
day.setText(Integer.toString(i));
day.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
day.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("Listener: ", "Click");
}
Run Code Online (Sandbox Code Playgroud)
所以现在当我单击TextView时我可以注册click事件,但是如何确定单击了哪个TextView?
不仅仅是我在事件中获得的对象,而是点击了哪一天的数据?
理想情况下,我希望将数据附加到我动态创建的每个视图.像Javascript jQuery中的data()方法.
现在我只能看到解决这个问题的一种方法 - 创建TextView时添加带数据的id,点击时 - 获取id并解析它以获取我的数据.但它让我感到丑陋.
有没有办法将任意数据附加到android视图?
我正在使用Android的android.graphics.Canvas类来绘制一个环.我的onDraw方法剪切画布为内圈创建一个洞,然后在洞上绘制整个外圈:
clip = new Path();
clip.addRect(outerCircle, Path.Direction.CW);
clip.addOval(innerCircle, Path.Direction.CCW);
canvas.save();
canvas.clipPath(clip);
canvas.drawOval(outerCircle, lightGrey);
canvas.restore();
Run Code Online (Sandbox Code Playgroud)
结果是一个带有漂亮,抗锯齿外边缘和锯齿状,丑陋内边缘的戒指:

我能做些什么来消除内缘?
我不想通过在中间画一个灰色圆圈来欺骗,因为对话框略微透明.(这种透明度在其他背景上并不那么微妙.)
如果我已经定义了一个Activity:
public class DialogActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(dialog_activity.xml);
}
}
Run Code Online (Sandbox Code Playgroud)
我想像对话框一样显示上面的活动,所以在AndroidManifest.xml文件中,我声明这个活动如下:
<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"/>
Run Code Online (Sandbox Code Playgroud)
此时一切都很好,我DialogActivity表现为对话.
问题是如何自定义宽度和高度DialogActivity使其更像一个小对话框?(目前它默认占据大部分屏幕)
----------------------------更新--------------------- -
我定义了一个自定义主题如下:
<style name="myDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:width">100dip</item>
<item name="android:height">100dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,DialogActivity在AndroidManifest.xml中声明为.
<activity android:name=".DialogActivity" android:theme="@style/myDialog"/>
Run Code Online (Sandbox Code Playgroud)
我DialogActivity现在甚至占据整个屏幕:(.宽度和高度定义:
<item name="android:width">100dip</item>
Run Code Online (Sandbox Code Playgroud)
在主题上没有任何效果,为什么?
android android-widget android-manifest android-emulator android-layout
我正在使用一个drawable for seekbar thumb with
android:thumb="@drawable/thumb"
Run Code Online (Sandbox Code Playgroud)
如何在倾角单元中设置此拇指的大小?因为我使用了类似于搜索栏的样式
<style name="CustomSeekBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:minHeight">8dip</item>
<item name="android:maxHeight">8dip</item>
<item name="android:thumbOffset">8dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我想要拇指的12dip高度和宽度.
我想知道如何在android中将下划线文本设置为TextView?请注意我没有能力设置带有预先填充的字符串的strings.xml是否有任何方法可以在Android中使用纯Java代码添加它.
我将一些图像加载到图库中.现在我可以滚动但是一旦开始滚动滚动就不会停止.我希望画廊只是滚动到下一个图像,然后停止,直到用户再次执行滚动手势.
这是我的代码
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class GalleryExample extends Activity {
private Gallery gallery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(GalleryExample.this, "Position=" + position, Toast.LENGTH_SHORT).show();
}
});
}
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
private Integer[] Imgid = {
R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, R.drawable.a_4, R.drawable.a_5, R.drawable.a_6, R.drawable.a_7
};
public AddImgAdp(Context c) …Run Code Online (Sandbox Code Playgroud) 我有一个固定宽度和高度的单元格,让它为100x100px.在那个单元格中,我想要显示一个ImageView带边框的边框.
我的第一个想法是将背景资源放入ImageView,并添加1dp的填充以创建边框效果:
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_border"
android:padding="1dp"
android:src="@drawable/test_image" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
显然这应该有效,但它没有,或者至少没有预期的那样.
问题是ImageView背景填充整个100x100px单元格的空间,因此,如果图像的宽度小于100px,则顶部和底部边框将显得更大.
注意黄色边框,我需要它在ImageView周围正好1px:

任何帮助,想法,任何建议都非常感谢.
android android-widget android-emulator android-layout android-imageview